2012-03-24 29 views
0

javaのregexを使って助けが必要です。Java正規表現@文字列

1)文字列doesntのは非常に特定の一つを含む確認すること:2つの異なる検証を達成しようと、私は本当に(私は知っているすべてはあなたが使用する可能性のあるマッチの方法があるということです)どのように知らない

イム文字が(区切りの検証に - 1となく、同じ正規表現パターン)(.. CHAR1、CHAR2を)言うことができます

そして:

2)必ず文字列を作るは "anythingCanBeHere @ anythingCanBeHere" のパターンが含まれていますご了承ください "" (空文字列)と "anythingCanBeHere @"は有効ですが、 "@anythingCanBeHere"は無効です。 btw、何とかこの正規表現を使用して@の前の最初の値と@の後の2番目の値の正しい方法で分割できますか?

ウル返事を待って、おかげでみんな多く:)

+0

これまでに何を試みましたか?正規表現の良いリンクはhttp://www.vogella.de/articles/JavaRegularExpressions/article.html –

+0

です。[http://stackoverflow.com/questions/198781/regex-to-tell-if-a -string-does-not-a-specific-character]を入力してください。 – Prashanth

答えて

1

あなたはこのようなあなたの入力を検証することができます

boolean checkInput1(String input) 
{ 
    return input.matches("^[^bla]*$"); 
} 

boolean checkInput2(String input) 
{ 
    if (input.length() == 0) return true; 
    return input.matches("^[^@][email protected]*$"); 
} 

は、あなたが含まれてしたくない特定の文字とここblaを交換してください。

+0

まず、お返事ありがとうございます!なぜ、String.matches( "pattern ..")のようなことをするのではなく、パターンマッチャーオブジェクトを使用したのですか? 2.それは@の前のシーケンスでなければならないことをどのように保証しますか? – Popokoko

+0

String.matchesは本当に良い選択肢です。今修正しました。正規表現では、@の前に+修飾子があるシーケンスが存在する必要があります。 +修飾子は、1回以上の出現が必要です。 – Overv

+0

大丈夫ですが、まだ何か問題があります。なぜなら、「何かがここにある」と書いたとき、ある文字列の 'bla'でパターンを制限したくないからです。私はblaを削除する必要がありますか? – Popokoko