我需要在字符串中的双 EOL 之后插入一些额外的文本。我遇到了奇怪的行为:当我在双 EOL 之后积极预测符号的出现时,一切工作几乎都很好:
"A\n\nA".gsub /(^{2})(?=A)/, '♻'
# ⇒ "♻A\n\n♻A"
在(字符串的开头)有一个奇怪的匹配\A
,但我现在没问题。当我尝试负前瞻时,真正的问题出现了:
"A\n\nA".gsub /(^{2})(?!B)/, '♻'
# ⇒ "♻A\n♻\n♻A"
# WHAT? ⇑
请您解释一下我在正则表达式中误解了什么,为什么会出现中间匹配以及我应该如何用我需要的东西代替双 EOL。
UPD发生中间匹配是因为^
是元字符,不匹配,谢谢@bsd。但是,替代双 EOL 的正确方法是什么?我很可能被困住了。
提前致谢。