【发布时间】:2021-01-23 00:01:28
【问题描述】:
对于这个字符串:hello (hi that [is] so cool) awesome {yeah}
我希望正则表达式只匹配 hello 和 awesome。
这是我迄今为止尝试过的,它似乎不起作用。 https://regex101.com/r/NsUfQR/1
([^\(\)\[\]\{\}[]()〔〕〈〉【】]+)(?![^()\[\]\{\}[]()〔〕〈〉【】]*[\)\])〕〉】]])
这匹配 hello hi that awesome yeah 太多了。
是否可以仅使用正则表达式来实现这一点,或者使用 perl 或 python 是否有另一种方法?
【问题讨论】:
-
先到先得?也嵌套?平衡文字 ?说outside意味着更多。
-
是的,括号,它们可以相互嵌套。目的是不管哪个括号在最外面,里面的东西都不匹配。
-
这就是为什么我说先到先得。我的意思是如果内部文本是 unbalanced 没关系,即
here (not[here]]or there) ok。你用的是 Perl 还是 Python? -
我正在使用 Perl。 Perl 更可取。 :)