\$\([^\$^\(^\)]*\)
我使用此语句匹配以$
字符开头的括号中的任意随机字符串文字。
$(random_string)
- > $(random_string)
应匹配。$($($(cat)hat)bat))
- >只有$(cat)
应该匹配(这样才能将匹配放在最内层)$()
不应该匹配,但它与上述声明相符。我该如何预防?
答案 0 :(得分:3)
答案 1 :(得分:1)
在正则表达式中,将*
替换为+
,
\$\([^\$^\(^\)]+\)
*
表示零或更多,因此它与$()
匹配,但+
表示一个或多个。现在$()
不应该匹配,因为在paranthesis中不存在任何字符。