python中字符串格式的正则表达式re.sub
对正则表达式很陌生,我正在努力掌握它们python中字符串格式的正则表达式re.sub,python,python-2.7,Python,Python 2.7,对正则表达式很陌生,我正在努力掌握它们 string = "regex_learning.test" subbed = re.sub(r'(.*)_learning(.*), r'\1', string) 我所希望的是打印子床时作为输出的“regex.test”,但是我只得到“regex” 有人能解释一下为什么我考试不及格吗 提前感谢使用此: subbed = re.sub(r'(.*)_learning(.*)', r'\1' + r'\2', string) 您也可以将其编写为: sub
string = "regex_learning.test"
subbed = re.sub(r'(.*)_learning(.*), r'\1', string)
我所希望的是打印子床时作为输出的“regex.test”
,但是我只得到“regex”
有人能解释一下为什么我考试不及格吗
提前感谢使用此:
subbed = re.sub(r'(.*)_learning(.*)', r'\1' + r'\2', string)
您也可以将其编写为:
subbed = re.sub(r'(.*)_learning(.*)', "%s%s" % (r'\1', r'\2'), string)
你能解释一下那里的+r'\2'是怎么回事吗?如果我能够按照脚本所说的内容进行操作,\1
会为您提供第一个()
捕获的匹配,而\2
会为您提供第二个()
捕获的匹配。后者捕获字符串的.text
部分。您希望将两个匹配项中的替换字符串连接起来。这太棒了。非常感谢。当然,没问题。如果这对您有效,请务必接受答案。@user3234810:与其使用*
,不如使用*?
,这样可以提供非贪婪匹配。因此,(.*)
将变成(.*)
请参见中的*?、+?、??
。