-PR-
解決済み

半角記号、全角記号を含む正規表現を作れなくて困っています。

  • すぐに回答を!
  • 質問No.5105729
  • 閲覧数17839
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 66% (60/90)

システムの入力チェックのために
!"#$%&'()=~|`{+*}<>?_-^\@[;:],./
!”#$%&’()=~|‘{+*}<>?_-^¥@「;:」、。・

などの半角記号、全角記号を1個以上含むとtrueを返す
正規表現を作りたいのですが、うまくできなくて困っています。
以下の[ ]に入れる値で、何か良いものはありませんか?


Boolean b = Pattern.compile("[ ]+").matcher(input).matches();
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル12

ベストアンサー率 46% (261/560)

>全角はエスケープシーケンスがいらないのでしょうか?
いらないです。エスケープする必要がないので。

>エスケープシーケンスをあまり使いたくないので、範囲指定する方法を知りたいのです。
うーん。全角の記号はエスケープする必要がないけど、「範囲指定」だとUnicodeで範囲指定できるかも。
ただ、全角の記号がUnicodeで連続になっていればいいけど、(おそらく)なっていないだろうから。
正規表現の読みやすさ?を考えてのことだったら…
苦しいかもしれないけど
 String hankaku = "\\p{Punct}"; //半角記号
 String zenkaku = "!”#$%&’()=~|‘{+*}<>?_-^¥@「;:」、。・"; //全角記号
 boolean b = Pattern.compile("["+hankaku+zenkaku+"]+").matcher(input).matches();
ってな感じでどうでしょう…。
お礼コメント
pochi1234

お礼率 66% (60/90)

全角記号は全部書かないとだめなんですね。
とても参考になりました。ありがとう。
投稿日時 - 2009-07-13 23:21:42

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 23% (3656/15480)

「うまくできない」とはどのような状態を指すのでしょうか?
表記に工夫の必要な記号がありますが, そこはちゃんとよろしくしていますか?
補足コメント
pochi1234

お礼率 66% (60/90)

エスケープシーケンスをあまり使いたくないので、範囲指定する方法を知りたいのです。
投稿日時 - 2009-07-07 15:59:48


  • 回答No.2
レベル12

ベストアンサー率 46% (261/560)

「\(半角円マーク)」は
 正規表現では「\\(半角円マーク2つ)」としなければなりません。
Javaでは文字列に「\(半角円マーク)」を記述するときは
 「\\(半角円マーク2つ)」としなければなりません。
ということは、Javaの文字列に正規表現で「\(半角円マーク)」を使う場合は
 「\\\\(半角円マーク4つ)」ということになります。

半角記号が
 !"#$%&'()=~|`{+*}<>?_-^\@[;:],./
これらだけで他にはないのであれば、この部分は
 \p{Punct}
に置き換え可能です。
例)
 String hoge = "\\";
 System.out.println(hoge.matches("[\\p{Punct}]+"));

>Boolean b = Pattern.compile("[ ]+").matcher(input).matches();
「Boolean」じゃなくて「boolean」ですよね?
補足コメント
pochi1234

お礼率 66% (60/90)

Punctの使い方を間違っていたようで、うまくできましたが、

全角記号が難しいです。
全角はエスケープシーケンスがいらないのでしょうか?

Punctのように何か省略して行う方法があればいいのですが。
投稿日時 - 2009-07-07 16:00:55
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


抽選で合計100名様にプレゼント!

ピックアップ

ページ先頭へ