- ベストアンサー
※ 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]+")); 以上、宜しくお願いします。
- みんなの回答 (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]だって「記号または・・・」になる理屈。
お礼
ありがとうございました。