假设我有一个字符串'ad>ad>ad>>ad'
,我希望在'>'
(而不是'>>'
字符)上对此进行拆分。刚刚拿起正则表达式并想知道是否有一种方法(特殊字符)可以在匹配表达式的特定部分上进行拆分,而不是拆分整个匹配表达式,例如正则表达式可能是:
re.split('[^>]>[^>]', 'ad>ad>ad>>ad')
你能把它分成括号[^>](>)[^>]
中的字符吗?
答案 0 :(得分:1)
您需要使用外观:
re.split(r'(?<!>)>(?!>)', 'ad>ad>ad>>ad')
请参阅regex demo
(?<!>)>(?!>)
模式仅匹配>
前面没有<
的{{1}}(由于负面的后置(?<!>)
),并且后面没有<
1}}(由于否定前瞻(?!>)
)。
由于lookarounds不消耗字符(不像否定(和正)字符类,如[^>]
),我们只匹配并分割<
符号而不用& #34;触摸&#34;周围的符号。
答案 1 :(得分:1)