2017-09-22 103 views
-6

如何在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." 

請幫我解決的正則表達式語法這個問題。

回答

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"

+0

感謝您的關注和答覆。上帝祝福你。 :-) –

+0

hhmm對不起,爲什麼你的語法不適用於這個文本? 「saya sedang akan di warung pak budi。saya membeli bakwan seharga Rp。200」 我想從這個文本刪除單詞「saya」 你能幫助我多一次嗎?謝謝 –

+0

使用這個:'pattern =「(。*)saya(。*)saya(。*)」'(如果你的文本真的是以空格開頭的話;如果不是這樣的話,該模式也是)。 – MarianD

相關問題