在多行文本中,我想将三重破折号---
替换为X
。一行中必须有三个虚线,而不是两个或四个。另一个限制:如果---
是行中的最后一个字符(可能的尾随空格除外),则不要替换它。
到目前为止,我得到了
import re
text1 = "a---b"
text2 = "a\n --- \nb"
for text in [text1, text2]:
print(repr(re.sub("(?<!-)---(?!-)", "X", text)))
'aXb'
'a\n X \nb'
具有负向前看/向后看。我想要
'aXb'
'a\n --- \nb'
但是,如何实现重要字符必须遵循---
的规则?
1条答案
按热度按时间cyvaqqii1#
您可以Assert左边是不带换行符的可选空格字符,后跟一个不是连字符的非空格字符
Regex demo
输出
或者你可以Assert没有换行的尾随空格直到字符串的结尾:
Regex demo
输出