如何将正则表达式与行尾相匹配?

时间:2013-04-26 10:36:03

标签: java regex

我正在尝试编写一个执行以下操作的正则表达式: - 查找至少一个=,并将这些=提取到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 $锚点我缺少什么?

1 个答案:

答案 0 :(得分:2)

[.$]表示由点或美元符号组成的character class。如果您想要正则表达式元素you should use |之间的替代品,即(\.|$)

此外,您可以使用negative character classes [^…]代替lazy matching …*?

([^=]+)=+([^.]+)(?:\.|$)