我正在尝试编写一个执行以下操作的正则表达式:
- 查找至少一个=
,并将这些=
提取到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
我在这里使用endofline $
锚点我缺少什么?
答案 0 :(得分:2)
[.$]
表示由点或美元符号组成的character class。如果您想要正则表达式元素you should use |
之间的替代品,即(\.|$)
。
此外,您可以使用negative character classes [^…]
代替lazy matching …*?
:
([^=]+)=+([^.]+)(?:\.|$)