4

我如何知道将所有内容与特定字符集EOL 匹配?

[=]+.*?[()|$]

火柴:==test)

不匹配:==test

$为什么第二条语句不考虑行尾正则表达式锚?

4

1 回答 1

5

行尾在字符类中不起作用,因为它实际上不是字符。这是一个零宽度断言(它测试字符串中当前点的条件,但实际上并没有吃掉一个字符)。

用 测试它(?:otherstuffhere|$)

注意:您似乎将字符类与匹配的子组混淆了。字符类[...]匹配括号内的任何一个字符。[a|bc]将匹配a,|或. 匹配子组是您想要或多个表达式的内容。是与捕获匹配的子组。是没有捕获的匹配子组。bc(...)(?:...)

请注意,$根据您的设置,多行字符串中的匹配行为可能会有所不同。它可以匹配每一行的结尾,也可以只匹配字符串的结尾。

\z无论您使用什么设置,都将始终只匹配字符串的末尾。\Z将在字符串的末尾匹配,或者在最后的换行符之前匹配。

于 2013-04-29T09:58:18.130 回答