繁体   English   中英

Python re.sub总是匹配吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM