Regex 正则表达式:如何匹配以括号结尾的单词&引用;

Regex 正则表达式:如何匹配以括号结尾的单词&引用;,regex,match,parentheses,Regex,Match,Parentheses,我想匹配以“')”结尾的字符串。 我使用模式: "[)]\b" or ".*[)]\b" 它应该与字符串匹配: x=main2.addMenu('Edit') 但它不起作用。怎么了?该\b仅与单词边界处的位置匹配。将其视为一个(^\w | \w$|\w\w |\w\w),其中\w是任何字母数字字符,\w是任何非字母数字字符。括号不是字母数字,因此不会与\b匹配 只需使用\)$匹配一个排列,然后是字符串的结尾,\b仅匹配单词边界处的位置。将其视为一个(^\w | \w$|\w\w |\w\w

我想匹配以“')”结尾的字符串。 我使用模式:

 "[)]\b" or ".*[)]\b"
它应该与字符串匹配:

x=main2.addMenu('Edit')

但它不起作用。怎么了?

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


只需使用
\)$

匹配一个排列,然后是字符串的结尾,\b仅匹配单词边界处的位置。将其视为一个
(^\w | \w$|\w\w |\w\w)
,其中\w是任何字母数字字符,\w是任何非字母数字字符。括号不是字母数字,因此不会与\b匹配


只需使用
\)$
匹配一个paretose,后跟字符串的结尾。如果您想捕获一个以
结尾的字符串(而不仅仅是查找尾随的
),那么您可以在JS中使用它:

(.*?\)$)
(..)
-捕获定义的内容

*?
-将任何内容匹配到下一个元素

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


如果您想捕获以
结尾的字符串(而不仅仅是查找尾随的
),那么您可以在JS中使用:

(.*?\)$)
(..)
-捕获定义的内容

*?
-将任何内容匹配到下一个元素

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


单词边界不明确:在单词字符之后,要求下一个字符必须是非单词字符或字符串末尾。当它位于一个非单词字符(如
)之后时,它需要一个单词字符(字母/数字/下划线)出现在它的后面(这里不是字符串的结尾!)

因此,有三种解决方案:

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

单词边界不明确:在单词字符之后,要求下一个字符必须是非单词字符或字符串末尾。当它位于一个非单词字符(如
)之后时,它需要一个单词字符(字母/数字/下划线)出现在它的后面(这里不是字符串的结尾!)

因此,有三种解决方案:

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

您使用的是什么语言?为什么不直接使用
\)\b
?在JS中,可能是这样:
(.*?\)$
-捕获字符串末尾的所有内容,直到一个转义“)”。
^.*?\)$
是您想要的。我猜谢谢您的回复,这个“)”不起作用。我在这里试过:你用什么语言?为什么不直接使用
\)\b
?在JS中,可能是这样:
(.*?\)$
-捕获字符串末尾的所有内容,直到一个转义“)”。
^.*?\)$
是您想要的。我猜谢谢您的回复,这个“)”不起作用。我在这里试过:谢谢,这是很好的解释。我使用这个网站:。我试过那个“$”,它很管用。但是如果我有多行字符串,那么我将匹配最后一行。所以也许我必须先把多行分解成单独的行。如果你想写一个匹配多行的正则表达式,那么你需要添加一个修饰符,这取决于你使用的语言。看问题。谢谢,这是很好的解释。我使用这个网站:。我试过那个“$”,它很管用。但是如果我有多行字符串,那么我将匹配最后一行。所以也许我必须先把多行分解成单独的行。如果你想写一个匹配多行的正则表达式,那么你需要添加一个修饰符,这取决于你使用的语言。见问题。