如何使用python正则表达式删除字符串中特定单词前后的文本

2024-10-01 02:27:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串“copy table a(no=1,name=xyz,city=c0nl)from'a.dat';”。 在此,我想删除“copy”和“from”中的单词,但需要文件名为: 我想要的输出是“copy a from a.dat

任何帮助都会很好。我想用正则表达式。在


Tags: no字符串namefromcity文件名table单词
3条回答

您可以:

import re
mystr = "copy table values from 'a.dat';"
print(re.sub('copy.*from', 'copy from', mystr))

你不必担心空间,贪婪等等。在

(?<=\bcopy\b)[\s\S]*?(?=\s*\bfrom\b)

{{cd2>使用。在

https://regex101.com/r/sS2dM8/11

^{pr2}$

输出:copy from 'a.dat';

您可以将regex模块^{}和函数^{}(replace/substitute)与lookahead(?=from)和lookbehind(?<=copy )-也称为lookaround一起使用,以便只删除请求的部分(.*),该部分介于:

import re
print re.sub(r'(?<=copy )(.*)(?=from)', '', "copy table values from 'a.dat';")

输出

^{pr2}$

相关问题 更多 >