正则表达式:如何匹配单词结尾与括号“)”

时间:2016-03-08 03:53:03

标签: regex match parentheses

我希望将字符串结尾与')'匹配。 我使用模式:

 "[)]\b" or ".*[)]\b"

它应匹配字符串:

x=main2.addMenu('Edit')

但它不起作用。有什么问题?

3 个答案:

答案 0 :(得分:2)

\ b仅匹配单词边界处的位置。可以将其视为(^\w|\w$|\W\w|\w\W),其中\ w是任何字母数字字符,\ W是任何非字母数字字符。括号是非字母数字,因此不会与\ b。

匹配

使用\)$

匹配一个parethesis,然后匹配字符串的结尾

答案 1 :(得分:0)

如果你想捕获一个以)结尾的字符串(而不只是找到一个尾随的)),那么你可以在JS中使用它:

(.*?\)$)

(....) - 捕获已定义的内容;

.*? - 匹配下一个元素的所有内容;

\)$ - 字符串末尾的)(需要转义);

Regex101

答案 2 :(得分:0)

\b字边界不明确:在单词字符之后,它要求下一个字符必须是非字1或字符串的结尾。如果它位于非单词字符(如))之后,则需要在其后面出现一个单词字符(字母/数字/下划线)(此处不是字符串的结尾!)。

所以,有三种解决方案:

  • 使用\B(非字边界):.*[)]\B(请参阅demo),如果)后面跟有字符,则不允许匹配
  • .*[)]$模式下使用MULTILINE(在模式开头添加(?m)或添加/m修饰符,请参阅demo
  • 使用更改组模拟多行模式:.*[)](\r?\n|$)(请参阅demo