首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串拆分为数组而不删除分隔符ruby

将字符串拆分为数组而不删除分隔符ruby
EN

Stack Overflow用户
提问于 2020-06-24 11:36:13
回答 1查看 89关注 0票数 1

我对红宝石很陌生。我需要根据regex模式将字符串拆分为数组,并保留分隔符。例如,我有一串日志

代码语言:javascript
复制
"@2019-01-09 09:01:05,333 ERROR-Log Message
@2019-01-09 09:01:05,333 ERROR-Log Message
@2019-01-09 09:01:05,333 WARNING-Log Message
@2019-01-09 09:01:05,333 WARNING-Log Message"

my regex pattern is /^(@[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}).*/

我想得到这样的东西

代码语言:javascript
复制
["@2019-01-09 09:01:05,333 ERROR-Log Message", "@2019-01-09 09:01:05,333 ERROR-Log Message", "@2019-01-09 09:01:05,333 WARNING-Log Message", "@2019-01-09 09:01:05,333 WARNING-Log Message"]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-24 14:57:01

您可以在.split中使用以下正则表达式

代码语言:javascript
复制
/(?!\A)(?=^@\d{4}(?:-\d{2}){2} \d{2}(?::\d{2}){2},\d{3})/

它是两个看头的组合:

  • (?!\A) -不是在字符串的开头
  • (?=^@\d{4}(?:-\d{2}){2} \d{2}(?::\d{2}){2},\d{3}) -开始一个行位置,后面跟着与@匹配的@\d{4}(?:-\d{2}){2} \d{2}(?::\d{2}){2},\d{3}模式,然后是一个类似日期的模式,然后是一个空格,然后是一个类似时间的模式。

regex演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62554148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档