繁体   English   中英

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

[英]split string into array without deleting delimiter ruby

我是 ruby 的新手。 我需要根据正则表达式模式将字符串拆分为数组并保留分隔符。 例如,我有一串日志

"@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}).*/

我想得到这样的东西

["@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"]

您可以将以下正则表达式与.split一起使用:

/(?!\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}) - 开始一行 position 后跟@\d{4}(?:-\d{2}){2} \d{2}(?::\d{2}){2},\d{3}匹配@的模式,然后是类似日期的模式,然后是空格,然后是类似时间的模式。

请参阅正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM