156

私は正規表現が初めてで、次の正規表現が与えられています。

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

* の意味と | を知っています。は「または」を意味し、\ はエスケープします。

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

誰かが私を助けることができますか?

4

2 に答える 2

221

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

出典:regular-expressions.info

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

于 2013-02-15T09:03:31.813 に答える
42

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

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

[\p{L}\p{N}_.-]*
于 2013-02-15T09:06:16.313 に答える