• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:英数字と記号の正規表現)

英数字と記号の正規表現による判定方法

このQ&Aのポイント
  • 英数字と記号の文字であればtrueを返すような判定を正規表現で行いたいです。
  • 英数字の判定([0-9a-zA-Z])、記号([\p{Punct}]+)の判定は個別にテストして動作したのですが、二つを組み合わせて書くようにするにはどのようにすればよいのでしょうか?
  • String str = "~!@#$%^&*()_+{}|:'<>?`-=[]\;',./1234567890abcdefgxyz"; System.out.println(str.matches("[\p{Punct}]+") || str.matches("[0-9a-zA-Z]+")); 以上、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

普通に横につなげるといい。 String str = "~!@#$%^&*()_+{}|:\"<>?`-=[]\\;',./1234567890abcdefgxyz"; System.out.println(str.matches("[\\p{Punct}0-9a-zA-Z]+")); [0-9A-Za-z]が「0から9またはAからZまたはaからz」であるならば、 [\\p{Punct}0-9a-zA-Z]だって「記号または・・・」になる理屈。

rio_grande
質問者

お礼

ありがとうございました。

関連するQ&A