我正在匹配標識符,但現在我遇到了一個問題:我的標識符允許包含unicode字符。因此,舊的方式來做事是不夠的:匹配正則表達式中的unicode
t_IDENTIFIER = r"[A-Za-z](\\.|[A-Za-z_0-9])*"
在my markup language解析器我允許,除了那些我明確地使用所有的字符的Unicode字符匹配,因爲我的標記語言,只有兩個或三個大字,我需要這樣逃跑。
如何使用python正則表達式和ply匹配所有的unicode字符?這也是一個好主意嗎?
我想讓人們使用像Ω»«foo²väliπ這樣的標識符作爲程序中的標識符(變量名稱等)。哎呀!我希望人們可以用自己的語言編寫程序,只要它很實用!無論如何,Unicode現在支持各種各樣的地方,它應該傳播。
編輯:POSIX字符類似乎不被python正則表達式識別。
>>> import re
>>> item = re.compile(r'[[:word:]]')
>>> print item.match('e')
None
編輯:爲了更好地解釋我需要的東西。我需要一個正則表達式,它匹配所有的unicode可打印字符,但不包含ASCII字符。
編輯:r「\ w」做了我想要的東西,但它不符合«»,我還需要一個不匹配數字的正則表達式。
它也不會出現Python的PCRE理解謂語類兩種:\ p {} ISALPHA他們 – Axeman 2008-10-27 03:37:49