【发布时间】:2019-11-27 21:16:32
【问题描述】:
为什么这个正则表达式在 Python 中有效,而在 Ruby 中无效:
/(?<!([0-1\b][0-9]|[2][0-3]))/
很高兴听到解释以及如何在 Ruby 中解决它
用整行代码编辑:
re.sub(r'(?<!([0-1\b][0-9]|[2][0-3])):(?!([0-5][0-9])((?i)(am)|(pm)|(a\.m)|(p\.m)|(a\.m\.)|(p\.m\.))?\b)' , ':\n' , s)
基本上,当有冒号并且不是时间时,我会尝试添加'\n'。
【问题讨论】:
-
你想和
\b匹配什么?你的模式应该匹配什么? -
这应该匹配还是不匹配?也给我们提供用例进行测试。
-
顺便说一句,如果断言背后的否定外观匹配,它将永远无法在其内容构造中捕获任何内容。
-
@tadman 添加了更多信息
标签: python regex ruby regex-lookarounds