【发布时间】:2019-03-29 06:38:38
【问题描述】:
在正则表达式之间或多次使用 $ 时的行为是什么?根据Regex Wiki "$" 应该匹配行尾。我可以在正则表达式中多次使用 $ 来匹配后续行吗?
考虑以下正则表达式:
^(a$|b)(c)$
为什么上面的正则表达式不匹配字符串“a\nc\n”。你可以在https://regexr.com/4b84o查看。
一旦达到“a\n”,正则表达式似乎停止验证,因此“c\n”没有被验证,而是被用于下一个要匹配的字符串。正则表达式不验证多行吗? $ 表示行尾(即 \n 字符)还是匹配要匹配的字符串的结尾?
【问题讨论】:
-
你没有启用多行标志,所以
$只匹配字符串的结尾。您也从未匹配a和c之间的换行符 -
即使启用了多行标志,它也不匹配。更新了链接上的正则表达式以匹配多行。
-
匹配“a\nc\n”和“bc\n”的正则表达式是什么?我是正则表达式的新手,请合理地解释您的反对意见,以便如果觉得不必要,我会删除该问题。