2014-09-22 16 views
17

I natknąć tego wyrażenia regularnego w C# Chciałbym port javascript, a ja nie rozumiem, co następuje:Co oznacza to wyrażenie regularne - " p {Lu}"?

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

Część I trudno się jest oczywiście \p{Lu}. Wszystkie odwiedzane przeze mnie witryny regexp nigdy nie wspominają o tym modyfikatorze.

Każdy pomysł?

+3

patrz opis po prawej stronie w ten link http://regex101.com/r/lG2nG9/1 –

+1

http: // www .regular-expressions.info/unicode.html # category – smerny

+1

Zawsze jeszcze jedna strona! dziękuję za regex101, który jest bardzo fajny. Nigdy wcześniej nie widziałem tej strony. post to odpowiedź? Albo usunę pytanie, jeśli jest ono zbyt oczywiste (ale nie było dla mnie). –

Odpowiedz

18

Są to uznane za nieruchomości Unicode.

Właściwość Unicode \p{L} — skrócona dla \p{Letter} będzie pasować do dowolnego rodzaju litery z dowolnego języka. Dlatego \p{Lu} dopasuje dużą literę, która ma wariant z małymi literami. I odwrotnie: \p{Ll} dopasuje małą literę, która ma wariant z dużymi literami.

zwięźle, to będzie pasować do dowolnego lowercase/uppercase that has a variant z dowolnego języka:

AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz 
+2

czy możesz wyjaśnić "wielką literę z wariantem pisanym małymi literami"? Głównie "wariant lowecase". –

+1

@AvinashRaj Oznacza to, że w alfabecie kodu Unicode znak może być renderowany zarówno wielkimi, jak i małymi literami oraz dopasowywany tylko do wielkiej wersji tej litery. Oznacza to również, że istnieją wielkie litery, które nie mają wersji pisanej małymi literami. – cgTag

+0

Więc czy '\ p {L}' potencjalnie pasowałoby do niektórych znaków, których nie dałby dany regex? Mianowicie te, które nie mają wersji wielkich lub małych liter? –

Powiązane problemy