如何在Python中使用正则表达式来解决这个问题?
我想从:
过滤单词regular
和text
"A regular expression is a special text string for describing a search pattern."
我想要这样的结果:
"A expression is a special string for describing a search pattern."
请帮我解决正则表达式语法中的这个问题。
答案 0 :(得分:0)
import re
txt = "A regular expression is a special text string for describing a search pattern."
pattern = "(.*) regular(.*) text(.*)"
result = re.sub(pattern, r"\1\2\3", txt)
print(result) # for testing only
解释:
如您所见,您的正则表达式是
(.*) regular(.*) text(.*)
括号中的表达式称为捕获组。所有3个都有相同的形式:
.*
这意味着它们将匹配所有内容 - .
表示任何字符,*
表示任意数量的,包括零(空字符串) )。
现在我们可以将捕获的文本分别用作\1
,\2
,\3
,因此您的原始文本与此标记相同
\1 regular\2 text\3
所以在re.sub()函数中我们保持只替换字符串
\1\2\3
有效地删除了部分" regular"
和" text"
。