假设采用以下格式的字符串:
Use \hyperlink{aaa}{apple {pear} banana} and \hyperlink{bbb}{banana {pear} {apple}}.
我要提取:
\hyperlink{aaa}{apple {pear} banana}
\hyperlink{bbb}{banana {pear} {apple}}
什么正则表达式可以用于这种提取?
我被卡住了
\\hyperlink{\S+}{.+}
答案 0 :(得分:2)
如果没有任何嵌套,则可以使用带有negated }{
的模式,例如
\\hyperlink{[^}{]*}{[^}{]*(?:{[^}{]*}[^}{]*)*}
类似this answer,但unrolled。参见the demo at regex101。要{
提取}
,请使用groups(demo)。
根据您的环境/ regex风格,对于不在字符类中的括号以字面意义进行匹配,可能有必要使用反斜杠对开头{
进行转义。
还要注意,\S+
如果不知道,可能会消耗}
和.+
can match more than desired。
答案 1 :(得分:1)