我无法制定正则表达式 会取代“?”的出现次数在中间或开始 的话。 让我们说我有这段文字:
?this
tha?t
midd?le
?beginning
我想替换所有出现的“?”用“x”,所以它将成为
xthis
thaxt
middxle
xbeginning
我特意找?在单词的开头或中间因为 如果它在一个单词/行的末尾它实际上是一个?而不是一个未知的角色。
答案 0 :(得分:0)
您可以使用前瞻来确保?
不在最后使用:
\?(?!$)
答案 1 :(得分:0)
尝试使用以下正则表达式匹配不在单词或句子末尾的所有?
。然后将匹配的?
符号替换为x
\?(?!\s|$)
答案 2 :(得分:0)
最简单的方法是匹配\?\b
,因为\b
只匹配非字母数字字符(如?
)和字母数字字符(如字母)。
>>> s = """?this
... tha?t
... midd?le
... ?beginning
... end?
... even this???
... """
>>> print(re.sub(r"\?\b", "x", s))
xthis
thaxt
middxle
xbeginning
end?
even this???