[英]Python re.sub always matches?
我有一个看起来像这样的数组:
mylist = [
"blah blah hello",
"\nbarnacles and stuff()",
"\nhello again",
"\nother stuff )"
]
我的正则表达式如下所示:
s = 'hello'
rx = re.compile(s + '.*')
newlist = [ rx.sub(thing, '') for thing in mylist ]
我期望新列表是:
[
"blah blah",
"\nbarnacles and stuff()",
"\n",
"\nother stuff )"
]
相反,我得到了:
[
"",
"",
"",
""
]
这是怎么回事? 这在REPL中的行为不一样...
仔细查看已编译正则表达式的sub
方法的签名 :
sub(repl, string, count=0)
第一个参数是替换字符串,第二个参数是要操作的字符串,这与您尝试调用它的方式相反。 (请注意,这与re.sub
函数的相对参数顺序相同。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.