在匹配的正则表达式(python)的部分上拆分字符串

时间:2016-03-31 17:29:54

标签: python regex

假设我有一个字符串'ad>ad>ad>>ad',我希望在'>'(而不是'>>'字符)上对此进行拆分。刚刚拿起正则表达式并想知道是否有一种方法(特殊字符)可以在匹配表达式的特定部分上进行拆分,而不是拆分整个匹配表达式,例如正则表达式可能是:

re.split('[^>]>[^>]', 'ad>ad>ad>>ad')

你能把它分成括号[^>](>)[^>]中的字符吗?

2 个答案:

答案 0 :(得分:1)

您需要使用外观:

re.split(r'(?<!>)>(?!>)', 'ad>ad>ad>>ad')

请参阅regex demo

(?<!>)>(?!>)模式仅匹配>前面没有<的{​​{1}}(由于负面的后置(?<!>)),并且后面没有< 1}}(由于否定前瞻(?!>))。

由于lookarounds不消耗字符(不像否定(和正)字符类,如[^>] ),我们只匹配并分割<符号而不用& #34;触摸&#34;周围的符号。

答案 1 :(得分:1)

尝试使用\b>\b

这将检查由非空白字符包围的单个>。由于问题中的字符串是连续的字符流,因此使用\b检查字边界是最简单的方法。

<强> Regex101 Demo