- ベストアンサー
正規表現のマッチングパターン
WindowsXP、VB6.0にて勉強しております。 http://oshiete1.goo.ne.jp/qa4544122.html 上記質問に関連してなんですが、 パターンをどう記述して良いか分からず困っております。 行いたいのは、数字・A~Z(半角大文字アルファベット)・半角カタカナ以外の文字が文字列に含まれているかどうかなんですが、 "[^0-9]|[^A-Z]|[^。-゜]" というパターンではうまく行きませんでした・・・orz 「()」を使用し、 「"(ab)|(cd)|(ef)" は "ab" または "cd" または "ef" にマッチ」 というのは分かったんですが・・・。 有識者の方、教えていただけませんか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
"[^0-9A-Z。-゜]"でOK(半角のマルです) なぜ質問の正規表現がダメかというと、 対象文字が"A"だった場合、[^A-Z]の条件はマッチしなくても [^0-9]や[^。-゜]の条件がマッチしてしまうため誤検出となるのです。
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
回答No.2
メタ文字'-'をエスケープすればOK "[^0-9A-Z。\-゜]"
質問者
お礼
ご回答ありがとうございます。 "[^0-9A-Z。-゜]"で行いたい処理が出来ました! 他の箇所でも、あるパターンを作成しなければなりませんが、そちらは自分で頑張ってみようと思います。 本当にありがとうございました!
補足
ご回答ありがとうございます。 "[^0-9A-Z。-゜]" としてみたんですが、 対象文字列に全角ひらがな(「あ」等)を入力した場合にひっかからないんですが、何が原因なのでしょうか?