我需要一个正则表达式来在句子中匹配括号内的单词。例如:
"this is [stack]overflow. I [[love]this[website]]."
我想从上面的句子中匹配的是堆栈,爱情和网站。
我已经尝试了下面的正则表达式\[(.*[^\]\[])\]
,但它不起作用。
答案 0 :(得分:4)
以下内容应该有效:
\[([^\[\]]*)\]
示例:http://www.rubular.com/r/uJ0sOtdcgF
说明:
\[ # match a literal '['
( # start a capturing group
[^\[\]]* # match any number of characters that are not '[' or ']'
) # end of capturing group
\] # match a literal ']'
答案 1 :(得分:1)
尝试在shell中执行此操作:
$ echo 'this is [stack]overflow. I [[love]this[website]]' |
grep -oP '\[+\K[^\]]+'
stack
love
website
这适用于PCRE& perl引擎。
<强>说明强>
\[ # match a literal '['
+ # one (preceding character) or more
\K # "reset" the regex to null
[^] # excluding class, here a literal \]
\] # match a literal ']'