2014-09-22 366 views
17

我偶然發現這個正則表達式在C#我想移植到JavaScript和我不明白以下幾點:這個正則表達式是什麼意思 - 「 p {Lu}」?

[-.\p{Lu}\p{Ll}0-9]+ 

的一部分,我也很難用當然是\p{Lu}的。我訪問的所有正則表達式網站從未提及此修飾符。

任何想法?

+3

看到在右側的描述在這個環節http://regex101.com/r/lG2nG9/1 – 2014-09-22 15:06:19

+1

HTTP:// WWW .regular-expressions.info/unicode.html#category – smerny 2014-09-22 15:06:30

+1

總是多一個網站!謝謝你的regex101這非常酷。之前從未看過這個網站。發佈它作爲答案?或者我會刪除該問題,如果它太明顯(但不適合我) – 2014-09-22 15:08:15

回答

18

這些被認爲是Unicode屬性。

Unicode屬性\p{L}\p{Letter}的簡寫將匹配來自任何語言的任何種類的字母。因此,\p{Lu}將匹配具有小寫變體的大寫字母。而且,相反\p{Ll}將匹配具有大寫變體的小寫字母。

簡明扼要,這將匹配來自任何語言的任何lowercase/uppercase that has a variant

AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz 
+2

你能解釋一下'大寫字母有小寫變體嗎?主要是'lowecase變種'。 – 2014-09-22 15:16:43

+1

@AvinashRaj這意味着在unicode字母表中,字符可以以大寫和小寫形式呈現,並僅匹配該字母的大寫版本。這也意味着有大寫字母沒有小寫版本。 – cgTag 2014-09-22 15:24:27

+0

那麼'\ p {L}'可能匹配給定正則表達式不會的某些字符?即那些沒有大寫或小寫變體? – 2014-09-22 15:27:53

相關問題