2013-10-21 135 views
0

這對於這個論壇中的人來說可能是微不足道的,但是我最終調試了整整一天。我有一個python腳本運行,但問題歸結爲:當部分字符串匹配時,python re.match()返回true

import re 
spice="IN_N1" 
rtl="IN_N13" 
re.match(spice,rtl) 

這將返回匹配的對象。 Python似乎與第二個字符串中任何位置的字符串IN_N1匹配並返回一個匹配。我想讓它比較整個字符串,並返回一個不匹配的情況。換句話說,只有在spice =「IN_N13」的情況下,我才希望以上匹配。如果有人能夠提出解決方案,那將會很棒。 謝謝!

+5

'香料== rtl'?無需爲此使用正則表達式。 –

回答

2

你的Python正則表達式被解釋爲IN_N1.*

您的模式更改爲IN_N1$,它應該工作。

但是考慮Aleksanders評論;)

//編輯:固定的正則表達式來考慮發表評論

+2

請注意,他們使用的是匹配,而不是搜索,因此隱含「^」。 – georg

+0

我做了spice ='^ IN_N1 $'和rtl ='^ IN_N1 $'。在這種情況下,它表示不匹配。但是,假設^暗示,我只是修改spice =「IN_N1 $」和rtl =「IN_N1」。這工作 - 並返回一個匹配。使rtl =「IN_N13」說不匹配。所以,在最後加上$就行。當然,平等運營商也有效。謝謝! – Nanditha

+0

確定第一個不起作用;)^在正則表達式中用於行開始,$爲行結束。 如果你把它放在你要搜索的字符串中,那麼這些字符就是普通字符(不是正則表達式表達式),因此正則表達式不匹配。 – gentoomaniac

相關問題