假设我有一个字符串'ad>ad>ad>>ad'
,我想在'>'
(而不是'>>'
字符)上对此进行分割。刚拿起的正则表达式,想知道是否有一种方法(特殊字符),为了将所匹配的表达的特定部分,而不是对整个匹配的表达式分割,例如正则表达式可能是:匹配正则表达式的一部分上的分割字符串(python)
re.split('[^>]>[^>]', 'ad>ad>ad>>ad')
你可以得到它在括号中的字符分裂[^>](>)[^>]
?
假设我有一个字符串'ad>ad>ad>>ad'
,我想在'>'
(而不是'>>'
字符)上对此进行分割。刚拿起的正则表达式,想知道是否有一种方法(特殊字符),为了将所匹配的表达的特定部分,而不是对整个匹配的表达式分割,例如正则表达式可能是:匹配正则表达式的一部分上的分割字符串(python)
re.split('[^>]>[^>]', 'ad>ad>ad>>ad')
你可以得到它在括号中的字符分裂[^>](>)[^>]
?
您需要使用lookarounds:
re.split(r'(?<!>)>(?!>)', 'ad>ad>ad>>ad')
的(?<!>)>(?!>)
模式的匹配不与一个<
前面(由于负回顾后(?<!>)
)一>
,这是不接着是<
(由于负向预测(?!>)
)。
由于lookarounds不消耗字符(不像否定(而且正面)的字符类,像[^>]
),我们只能在没有“感人”的周围符号的象征<
匹配和拆分。
如果什么单'>'被封闭用空格,或有只是右边或左边的空间?然后,它不会工作。 –
@WiktorStribiżew:这不在OP的规范中。如果是这种情况,那么OP应该指定所有这样的**案例**。 –
我把另一个标记为正确,因为它反映了我之后的完全匹配(但没有消费,这对我来说是新的。) – dpdenton