1

文字列に英数字または + ( ) 、 ' などの文字セットのみが含まれていることを確認する必要があります。- =私はのようにしてみました

    String regex = "([a-zA-Z0-9]+)|([\\'|\\()|\\+|\\,|\\-|\\.|\\="]+)";
    System.out.println("Regex : " + regex);

    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(str);

    if (matcher.matches()) {
        System.out.println("Match");
    } else {
        System.out.println("Not Matching");
    }

Btは機能していません。誰か助けてください

前もって感謝します

4

3 に答える 3

4

途中に OR があるため、英数字と記号が混在する文字列全体には一致しないようです。

たとえば、abcABC()+ には一致しませんが、abcABC には一致し、()+ には一致します

試す:

([a-zA-Z0-9\\'\\(\\+\\)\\,\\-\\.\\=]+)

お役に立てれば!

于 2013-07-09T09:31:14.117 に答える
3

次の正規表現を使用します。

^[-+=(),'.a-zA-Z0-9]+$

長さゼロの文字列を許可する場合は、次のように置き換え+ます*

^[-+=(),'.a-zA-Z0-9]*$
于 2013-07-09T09:32:10.990 に答える
0

コンパイルに問題があるようです

String regex = "([a-zA-Z0-9]+)|([\\'|\\()|\\+|\\,|\\-|\\.|\\="]+)";

"その前]に文字列が終了するためです。その文字セットに含めたい場合は"、エスケープする必要があります\"。そうでない場合は、正規表現から削除してください。

また、|内部[...]では OR 演算子ではなく通常の文字にするため、ここで使用する必要はありません。ところで、エスケープが必要な唯一の特殊文字[...]-.


たぶん試してみてください

String regex = "([a-zA-Z0-9]+)|(['()+,\\-.=]+)";

"または、特殊文字を含めたい場合

String regex = "([a-zA-Z0-9]+)|(['()+,\\-.=\"]+)";
于 2013-07-09T10:00:02.333 に答える