2016-03-30 10 views
1

コード:"[\ P {L}] +"という正規表現のパターンはJavaではどういう意味ですか?

Arrays.asList("AAAA DDDD, DDDD".split("[\\P{L}]+")).forEach(System.out::println); 

が出力:

AAAA 
DDDD 
DDDD 

(文字を意味する)、それはP{L}代わりのp{L}です注意してください。私はそれを見つけましたが、何も見つかりません。だから、誰かが私にそれについて何か示唆を与えることができますか?

+0

このトピックが完全に記述されているサイトへのリンクについては、[この質問](http://stackoverflow.com/questions/5969440/what-is-the-l-unicode-category)を参照してください。 –

答えて

4

あなたはPatternのJavadocで説明を見つけることができます。

のUnicodeスクリプト、ブロック、カテゴリおよびバイナリプロパティはPerlでよう\p\P構築物で書かれています。 \p{prop}は、入力にプロパティpropがある場合は一致し、入力にそのプロパティがある場合は\P{prop}と一致しません。

したがって、\pの反対です。

2

シンプル:それは\\p{L}の反対です。

本質的にすべて「非文字」です。 (が文書化されている)\\S

私はAPI正確なの参照を見つけることができませんでしたが、あなたが言う、行動からの提案を推測またはすることができ、\\s

編集(目を持つためTunakiにクレジット)

これは、実際にドキュメントの次の文によって提案された:

のUnicodeブロックとカテゴリは、\ pと\ Pと書かれています Perlのような構文です。

+0

これについてのドキュメントやリファレンスはありますか? – Sayakiss

+0

@Sayakissこれはインターネット上のすべてのものです。 http://www.regular-expressions.info/unicode.html:* "letter"カテゴリに属する​​一つの文字を '\ p {L}'にマッチさせることができます。あなたはそのカテゴリに属していない単一の文字を '\ P {L}'にマッチさせることができます。* –

関連する問題