我有一个字符串:
>>> s = 'Y/NOUN/dobj>_hold/VERB/ROOT_<membership/NOUN/dobj_<with/ADP/prep_<X/PROPN/pobj_>,/PUNCT/punct'
目的是把Y/
的位置改成X/
,例如:
>>> s.replace('X/', '@@').replace('Y/', 'X/').replace('@@', 'Y/')
'X/NOUN/dobj>_hold/VERB/ROOT_<membership/NOUN/dobj_<with/ADP/prep_<Y/PROPN/pobj_>,/PUNCT/punct'
假设在进行替换时没有冲突,即X/
和Y/
是唯一的,并且在原始字符串中只发生一次。你知道吗
有没有办法在没有占位符的情况下进行替换?目前,我正在使用@@
占位符交换位置。你知道吗
在Python中,使用regex的一种简单方法是通过
re.sub
替换部分中的lambda,您可以在其中评估/检查捕获组捕获的文本,并选择适当的替换:因此,
(X|Y)/
(我假设X
和Y
可能是多字符字符串占位符,否则使用([XY])
)应该可以:输出:
相关问题 更多 >
编程相关推荐