嗨,我是新來的正則表達式。正則表達式不匹配的方式,我想
我有,我想匹配任何數量的A-Z的A-Z 0-9串 -
我試過在python以下和_但它總是匹配,甚至是空的空間。有人能告訴我爲什麼嗎?
re.match(r'[A-Za-z0-9_-]+', 'gfds9 41.-=,434')
嗨,我是新來的正則表達式。正則表達式不匹配的方式,我想
我有,我想匹配任何數量的A-Z的A-Z 0-9串 -
我試過在python以下和_但它總是匹配,甚至是空的空間。有人能告訴我爲什麼嗎?
re.match(r'[A-Za-z0-9_-]+', 'gfds9 41.-=,434')
您的正則表達式匹配一個或多個這些字符。您的文字從一個或多個這些字符開始,因此它匹配。如果你想要它只有匹配這些字符,那麼你必須匹配他們從文本的開始到結尾。
re.match(r'^[A-Za-z0-9_-]+$', 'gfds9 41.-=,434')
+1,我打算寫相同的。 – 2012-03-21 13:29:00
完美,謝謝! – zentenk 2012-03-21 14:23:33
嘗試替代它,也許它會爲你工作:
[\w-]+
編輯:
雖然您最初提供的正則表達式也爲我工作。
它適用於我。 – WeaselFox 2012-03-21 13:26:54
對我來說也很好(Python 2.7.1)。 – teukkam 2012-03-21 13:28:53
假設它應該匹配「gfds9」,在Python 2.7.2上工作正常。 – Griwes 2012-03-21 13:30:48