如何匹配正则表达式和行尾?
问题描述:
我想写一个正则表达式是执行以下操作: - 寻找至少一个=
,并把这些=
最多是1)行结束,或2)点.
如何匹配正则表达式和行尾?
正则表达式:
[=]+?[=]+.*?[.$]+
Teststrings:
b == 123 //does not match, but which should as it is end of line!
b == 123. //does match "== 123.", which is OK
b == 123.abc //does match "== 123.", which is OK
缺少什么我在这里与行尾$
锚?
答
[.$]
表示由点或美元符号组成的character class。如果你想要正则表达式元素you should use |
之间的替代,即(\.|$)
。
此外,您还可以使用的negative character classes[^…]
代替lazy matching…*?
:
([^=]+)=+([^.]+)(?:\.|$)