I came across some regular expressions that contain [^\\p{L}]
. I understand that this is using some form of a Unicode category, but when I checked the documentation, I found only the following "L" categories:
Lu Uppercase letter UPPERCASE_LETTER
Ll Lowercase letter LOWERCASE_LETTER
Lt Titlecase letter TITLECASE_LETTER
Lm Modifier letter MODIFIER_LETTER
Lo Other letter OTHER_LETTER
What is L
in this context?
Unicode 6.0 has 7 character categories, and each category has subcategories: Letter (L): lowercase (Ll), modifier (Lm), titlecase (Lt), uppercase (Lu), other (Lo) Mark (M): spacing combining (Mc), enclosing (Me), non-spacing (Mn) Number (N): decimal digit (Nd), letter (Nl), other (No)
- Full Stop: U+002E period - Unicode Character Table.
Taken from this link: http://www.regular-expressions.info/unicode.html
Check the Unicode Character Properties
section.
\p{L} matches a single code point in the category "letter". If your input string is à encoded as U+0061 U+0300, it matches a without the accent. If the input is à encoded as U+00E0, it matches à with the accent. The reason is that both the code points U+0061 (a) and U+00E0 (à) are in the category "letter", while U+0300 is in the category "mark".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With