2015-04-08 38 views

回答

1

當您使用[A-z]時,您不僅可以捕獲從「A」到「z」的字母,還可以捕獲更多非字母字符:[ \ ]^_ `

在Python中,可以使用[^\W\d_]re.U選項來匹配Unicode字符(請參閱this post)。

Here is a sample根據您的輸入字符串。

Python的例子:

import re 
r = re.search(
    r'(?P<unicode_word>[^\W\d_]*)', 
    u'TestöäüéàèÉÀÈéàè', 
    re.U 
) 

print r.group('unicode_word') 
>>> TestöäüéàèÉÀÈéàè 
4

根據正在使用的正則表達式引擎,您可以使用^\p{L}+$正則表達式。 \p{L}表示一個unicode字母:

除了複雜性,Unicode還帶來了新的可能性。 一個是每個Unicode字符都屬於某個類別。您可以 匹配單個字符屬於 「字母」 類別與 \ p {L}

Source

This例子應該說明我所說的話。看來Regex101上的正則表達式引擎確實支持這個,你只需要從左上角選擇PCRE(PHP)。

+0

這可能是最好的想法,但我使用Python和標準的正則表達式庫不支持這一點。 – yamm