我使用以下正则表达式来匹配括号内的字符串:
\((.*?)\)
但这与此相符:
(word)
这也是:
( word )
我需要将其修改为仅匹配第一种情况:括号内的字词没有空格:(word)
有什么想法吗?
提前致谢
答案 0 :(得分:2)
您可以使用此模式:
\([^\s()](?:[^()]*[^\s()])?\)
[^\s()]
确保第一个字符不是空格或括号(并且必须至少包含一个字符)。
(?: [^()]* [^\s()] )?
是可选的。如果匹配,则相同的字符类确保最后一个字符不是空格。
答案 1 :(得分:1)
使用lookahead/lookbehind在左括号之后和右括号之前禁止空格:
\((?!\s)[^()]+(?<!\s)\)
(?!\s)
和(?<!\s)
表示&#34;后面没有/后面没有空格&#34;。
中间的部分[^()]+
要求括号中有一个或多个字符,不允许()
匹配。
答案 2 :(得分:0)
\(\b[^)]+\b\)