如何匹配正则表达式和行尾?

问题描述:

我想写一个正则表达式是执行以下操作: - 寻找至少一个=,并把这些=最多是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…*?

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