2014-09-22 2 views
17

inciampo in questa espressione regolare in C# vorrei porto a javascript, e non capisco il seguente:Cosa significa questa espressione regolare - " p {Lu}"?

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

La parte ho un momento difficile con è ovviamente \p{Lu}. Tutti i siti web regexp che ho visitato non menzionano mai questo modificatore.

Qualche idea?

+3

vedere la descrizione sul lato destro in questo link http://regex101.com/r/lG2nG9/1 –

+1

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

+1

Sempre un altro sito web! grazie per regex101 che è molto bello. Non ho mai visto questo sito prima. pubblicarlo come risposta? O eliminerò la domanda se è troppo ovvia (ma non era per me) –

risposta

18

Queste sono considerate proprietà .

La proprietà Unicode \p{L} — abbreviazione per \p{Letter} corrisponderà a qualsiasi tipo di lettera da qualsiasi lingua. Pertanto, \p{Lu} corrisponderà a una lettera maiuscola con una variante minuscola. E, l'opposto \p{Ll} corrisponderà a una lettera minuscola con una variante maiuscola.

In modo conciso, questo sarebbe adattarsi a qualsiasi lowercase/uppercase that has a variant da qualsiasi lingua:

AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz 
+2

potresti spiegare la 'lettera maiuscola che ha una variante minuscola'? Principalmente la 'variante lowecase'. –

+1

@AvinashRaj Significa che nell'alfabeto unicode è possibile eseguire il rendering di un carattere sia in maiuscolo sia in minuscolo e corrispondere solo alla versione maiuscola di quella lettera. Implica anche che ci siano caratteri maiuscoli senza versione minuscola. – cgTag

+0

Quindi, '\ p {L}' potrebbe corrispondere potenzialmente ad alcuni caratteri che la regex data non avrebbe? Vale a dire quelli che non hanno una variante maiuscola o minuscola? –