【发布时间】:2013-05-27 18:31:48
【问题描述】:
我有一些看起来像这样的文本:
(something1)something2
但是 something1 和 something2 也可能在其中包含一些括号,例如
(some(thing)1)something(2)
我想将something1(包括内部括号,如果有的话)提取到一个变量中。由于我可以依靠始终以左括号开头的文本,我希望我可以做一些事情,将第一个括号与正确的右括号匹配,并提取中间。
到目前为止,我尝试的所有内容都有可能匹配错误的结尾括号。
【问题讨论】:
-
用正则表达式找到匹配的括号是不可能的,所以像一个字符一个字符地搜索字符串直到开括号和右括号的数量相等的方法可能是最好的方法
-
谢谢,我发现你是对的。
-
@Angelo Perl 正则表达式(严格来说,不是真正的正则表达式,因为它们更强大)可以匹配括号,并受
grep支持(GNUgrep,在最少)。 -
虽然 perl 可以用正则表达式做到这一点,但可以在 bash 中做到这一点。
标签: regex bash pattern-matching