我想在之前只匹配没有反斜杠的美元符号,如下所示:
$not\$yes $
^.........^
到目前为止,我有[^ \\] \ $,但这并不匹配开始一行的任何美元。美元可能是文档中的第一个符号,因此匹配换行符不起作用。我该如何匹配?到目前为止我的正则表达式是否正确?
答案 0 :(得分:3)
您可以将an alternation与^
anchor一起使用,以便在字符串中首先匹配$
字符,如果它是字符串中的第一个字符,或者它是否跟随不是反斜杠的字符
/(?:^|[^\\])\$/
(?:
- 开始用于对更改进行分组的non-capturing group。^|[^\\]
字符的\
- ^
anchor匹配字符串的开头)
- 关闭用于对^|[^\\]
\$
- 字面上的$
字符换句话说,^
锚将匹配字符串的开头;虽然[^\\]
将匹配除反斜杠之外的任何内容。管道|
充当“或”运算符,它将匹配字符串的开头或除反斜杠之外的任何内容(即^|[^\\]
)。
因此,在您提供的字符串中,将匹配第一个/最后一个$
字符。
答案 1 :(得分:2)