我想在字符串的某些部分之间替换数字
例如:。
f = "abc 123 def 23435 kill x22 y2986"
我想用def
y
和#
之间的所有数据
尝试使用以下表达式,它没有工作
exp = re.sub(r"(?<=def)\d+(?=y)", "#", f)
预期产出:
abc 123 def ##### kill x## y2986
答案 0 :(得分:4)
嗯,我认为乍一看似乎很难用正则表达式来做,但有一种方法可以通过在多个级别(在这种情况下为2级)应用正则表达式来实现。这是一个例子:
npm install -g cordova
cd my_project
cordova platform update android
答案 1 :(得分:1)
在一般情况下,没有可变长度的后视是不可能的,但是在特定情况下,它可以使用正向和负向前瞻,但如果在最后一个之后有另一个y
,它可以替换数字{1}}:
y
匹配数字
\d(?!.*def[^y]*y)(?=[^y]*y)
:数字不在def[^y]*y
def..y
:数字在[^y]*y