正則表達式中的字符集使用[]指定。字符集匹配任何一個附加字符。例如,[abc]將匹配'a','b'或'c'中的一個。Python中的字符集與re2c正則表達式之間的區別
我意識到Python和re2c正則表達式中字符集之間存在潛在的差異。我知道什麼是在兩個相同的:
- 雙方接受的範圍,例如[AZ]小寫字母匹配
- 無論使用[^ ...]符號
- 雙方共同接受的字母數字接受反套和其他一些字符(空格等)
但我很擔心,這些可能是不同的:
- CHARACT需要的字符內進行轉義ERS設置
- 在哪裏放置文字「 - 」或「^」設置,如果我想匹配的字符,而不是指定設定反向或範圍內的字符內
你能解釋Python和re2c字符集之間的區別嗎?
從來沒有聽說過或使用過re2c,但實例看起來就像你的平均PCRE - 和Python`re`也是PCRE一樣,所以不應該有顯着的差異(像lookaround這樣的更高級特性中的最微妙的語義差異)。 – delnan 2011-01-21 16:46:04
re2c是PCRE/Python的精簡版。它使用DFA來一次檢查多個普通表達式的匹配。總之,如果我有'm'個長度爲O(n)個字符的正則表達式,那麼re2c決定哪個匹配O(n),而不是O(m * n),PCRE和Python最多可以做什麼。 re2c的權力較小,所以字符少意味着特殊暗示字符集可能不同。 – 2011-01-21 18:39:42