用于删除部分字符串的正则表达式

时间:2017-09-22 08:52:05

标签: python regex

如何在Python中使用正则表达式来解决这个问题?

我想从:

过滤单词regulartext
"A regular expression is a special text string for describing a search pattern."

我想要这样的结果:

"A expression is a special string for describing a search pattern."

请帮我解决正则表达式语法中的这个问题。

1 个答案:

答案 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"