我正在寻找能够处理以下问题的正则表达式模式:
(to make someone) happy (adj.)
我只想得到“快乐”这个词,如果只有一部分在括号中,正则表达式模式也应该处理行,例如:
(to make someone) happy
happy (adj.)
我尝试了以下方法:"\s*\(.*\)"
但我的想法有点错误!
我正在寻找能够处理以下问题的正则表达式模式:
(to make someone) happy (adj.)
我只想得到“快乐”这个词,如果只有一部分在括号中,正则表达式模式也应该处理行,例如:
(to make someone) happy
happy (adj.)
我尝试了以下方法:"\s*\(.*\)"
但我的想法有点错误!
这将在所有三个选项的第一个捕获组中为您提供正确的词:
(?:\([^)]*\)\s*)?(\w+)(?:\s*\([^)]*\))?
如果您想获得几个单词或允许特殊字符,您可以调整并更加宽容:
(?:\([^)]*\)\s*)?([^()\n]+)(?:\s*\([^)]*\))?
尝试正则表达式(?:^|\))\s*([^\(\)]+?)\s*(?:\(|$)
用于在两个带括号的组之间查找文本的正则表达式是
/(?:^|\([^)]*\))([^(]*)(?:$|\([^)]*\))/m
细分如下:
(?:^|\([^)]*\))
. 这从一个开放的paren匹配到第一个封闭的paren([^(]*)
中。这与下一个开放的括号相匹配。(?:$|\([^)]*\))
我使用了多行模式 ( m
) 以便匹配换行符以及字符串的开头和^
结尾$