2017-02-20 3 views
0

申し訳ありません、あまりにも早く投稿しました。 - いずれかを指定することができ、特定のものへの無制限の文字セットに関係なく、文字列にアルファベットのみが含まれていることを素早く正確にチェックしますか?

私は名前だけで、実際のアルファベットからの文字を含む検証し、検証文字列を、必要:

これが本当の問題です。

日本語、ロシア語、またはプレーンASCIIである可能性があります。

私はかなり良いですが、ラテン語にしか適していないJava function to return if string contains illegal charactersを見ました。

私はValidate a string contains only certain characters in javaを見ましたが、これについてはjava.util.Scannerと述べていますが、実際にはこの目的のために設計されていません。

+0

あなたはhttp://stackoverflow.com/questions/14636540/java-regular-expression-with-international-lettersを見ましたか? –

+0

@JeremyGrandいいえ、非常に面白いです。私は検索条件で正規表現を使うと思うが、それを見なかったが、 '検証'のテーマについて調べていた。 – Adam

+0

この答えは、さまざまなアルファベットの名前で真を返すために使用された正規表現を提供します。一度あなたがあなたを取り除くと、それはあなたの必要性に正確に答えてくれます。と正規表現からの\ s。 –

答えて

2

https://stackoverflow.com/a/14662136/7573818に記載されているように、次の場合はあなたの問題を解決しますか?

str.matches("^(?U)[\\p{Alpha}\\-']+") 
+0

私が他のコメントで言ったように、私は "regex"を大いに検索していなかったので、私はそれを逃しました。私が引用した最初のリンクで与えられた答えの1つが " regexpはおそらく良い方法ではありませんが、それは実証されていません。まともな選択肢がないかもしれません。 – Adam

+0

いいえ、 "文字で行う必要がある場合"というコメントは、Regexパターンのためのものです。パターン内のすべての文字を正確にする必要がある場合、正しいアプローチではありません。しかし、このシンプルな正規表現をコンパイルすると、それを実行する最良の方法になります。すべての文字をチェックする以外に、どのように文字列を検証できますか? –

関連する問題