2012-04-09 11 views
0

簡単な質問ですが、何も私のために働く。この文字を使用して文字列を分割しようとしています。 (まあまっすぐ棒のthingy)Javaでこの文字にregexを使用するにはどのような式が必要ですか? |

代わりに、それは1つの文字に私の全体の文字列を分割します。このキャラクターの正規表現とは何ですか?

"|"、または "\ |"、または "\ p |"何らかの理由ですべてが機能しません。

+1

を取得します。 '' \\ | ''を試してください。 – Howard

+0

うん、それは動作します。ありがとう^^ – ZimZim

答えて

2

のように2回エスケープする必要があります。|はJavaと正規表現の両方で特殊文字です。

+0

ありがとう、トリックでした! – ZimZim

+0

\は特殊文字ですか? \\が必要な理由は、Javaコンパイラが正規表現をエスケープシーケンスとして解釈しないためです。 – darrengorman

3

これは私のために問題なく動作します:

public static void main(String[] args) { 
    String s = "apples|bananas|oranges"; 
    for (String string : s.split("\\|")) { 
     System.err.println(string); 
    } 
} 

私はたぶん、あなたは、バックスラッシュをエスケープする必要が

apples 
bananas 
oranges 
+0

なぜIOExceptionが必要ですか?代わりに 'java.util.regex.PatternSyntaxException'が必要です。 –

+0

Mucho gracias senior!真剣に私のためのトリック、感謝の仲間をした笑! – ZimZim

+0

@ Eng.Fouad申し訳ありませんが、私は別の質問のためにやった別の試みの残り物です。私は、同じダミークラスを何度も再利用する傾向があります。それが本当に必要でないので、私はそれを削除します。パターンが有効であるため、この場合、もう1つの例外は役に立たない –

関連する問題