*.=,?
特定の文字列に文字または文字が含まれているかどうかを知る必要があります:
。私は(を使用して)試しましたstr.contains
:
[*?=:]
& また[^*?=:]
& また^[*?=:]
それらのどれも機能していないようです。
誰かがそれを行うための正規表現を教えてもらえますか?
contains
正規表現ではなく単純な文字列を引数として取ります。したがって、あなたの例では、文字列でこの正確な文字列を探します。[*?=:]
代わりに次を使用できますString.matches
。
str.matches(".*[*.=,?:]+.*");
String.contains
指定された文字列を検索します -- 正規表現は使用しません。代わりに、次を使用します。
s.matches(".*[*.=,?:].*")
これは、任意の文字、その後に言及した文字のいずれか、その後に任意の文字が続く文字列に一致します。
メソッドjava.lang.String.contains(CharSequence)
は正規表現をサポートしていません。独自の小さなヘルパー メソッドを作成する必要があります。
文字列に特定の正規表現に一致する部分文字列が含まれているかどうかを確認するには、次のようなメソッドを使用できます。
/**
* Checks if the given string contains a substring that matches the given
* regex.
*/
public boolean checkStringContainsStringMatchingRegex(String pString, String pRegex) {
return Pattern.compile(pRegex).matcher(pString).find();
}
との違いjava.lang.String.matches(String)
:
String.matches(String)
文字列が指定された正規表現と一致するかどうかを調べますcheckStringContainsStringMatchingRegex(String, String)
文字列 (最初の引数)に正規表現 (2 番目の引数) に一致する部分文字列が含まれているかどうかを確認します。