2017-07-05 13 views
-1

我想用正則表達式從Behind ## The Scenes得到字符串## The Scenes在Python中,如何使用正則表達式從「在#場景後面」找到「#場景」?

這就是我所做的正則表達式。

pattern = re.compile("#+\s\w+") 

當我運行腳本,我得到d ## The Scenes字符串。

我哪有?

+1

無法重現:http://ideone.com/ZWczaJ。 –

+0

我還獲得「##的」 –

+1

你不能得到這爲'「\ S \ W +」'代表「_one_空間,一個或多個單詞字符」,那麼你應該得到'「##的」' 。 – ForceBru

回答

0

正如其他人所指出的那樣,你的正則表達式模式不匹配「d ##的場景」,它匹配「##的」。如果你想 「##的場景」,這種模式增加了一個額外的空間和字你的,應該工作:

「#+ \ S \ w + \ S \ W +」

+0

這不是一個好的模式,因爲它不適用於「Behind ## The Scenes」或「Be behind ## The Scenes And More Words」等字符串。 –

+0

爲什麼它不適用於「幕後##」?我把它設計成**不匹配所有的「背後的場景和更多的話」,因爲目前尚不清楚OP是否需要這種行爲。 –

+0

你的模式看起來像硬編碼,我的模式更靈活。 –

0

你是怎麼得到「# #場景「?我不知道。使用你的模式後,我得到了「## The」。

但這樣的代碼:

pattern = re.compile("#+[\s\w]+") 

完美。

我想,這是你所需要的。

+0

這將抓住「##」後面的所有單詞,這可能不是OP想要的。 –

+0

但是falcon.guru沒有指定,代碼必須返回其他字符串。 –

相關問題