web-dev-qa-db-ja.com

正規表現\ p {L}および\ p {N}

私は正規表現を初めて使用し、次の正規表現を与えられました。

(\p{L}|\p{N}|_|-|\.)*

*の意味とは「または」を意味し、その\はエスケープします。

しかし、\p{L}\p{N}の意味がわかりません。 Googleで検索しましたが、結果はありません...

誰か助けてくれますか?

91
Diemauerdk

\p{L}は、「文字」カテゴリの単一のコードポイントに一致します。
\p{N}は、スクリプト内のあらゆる種類の数字と一致します。

ソース:regular-expressions.info

正規表現を頻繁に使用する場合は、そのサイトをブックマークすることをお勧めします。非常に便利です。

132
Cerbrus

これらはUnicodeプロパティのショートカットです(Unicode文字の場合は\p{L}、Unicode数字の場合は\p{N})。これらは、.NET、Perl、Java、PCRE、XML、XPath、JGSoft、Ruby(1.9以降)およびPHP( (5.1.0以降 =)

とにかく、それは非常に奇妙な正規表現です。文字クラスで十分な場合、代替を使用しないでください。

[\p{L}\p{N}_.-]*
23
Tim Pietzcker