- ベストアンサー
正規表現で、ある文字を含まない文字列のチェック方法について
正規表現で、ある文字(対象は複数)を含まない文字列をチェックしたいのですが、どうもうまくいかないので相談させて頂きます。 チェック対象文字(例:壱、拾、A、Z) 上記の文字以外のチェックは、 [^壱拾AZ]となるかと思いますが、 チェック対象文字を含まない文字列をチェックするためには、 どのような正規表現としたらよいのでしょうか? ご教授の程、よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
正規表現は苦手なのですが… [^壱拾AZ]は「壱拾AZ」以外の文字という意味は正しいですが、対象文字列の全てが壱拾AZ以外の文字からなっているという表現にはなっていませんよね。 文字列内に「壱拾AZ」以外の文字が存在すれば、それにヒットするはずです。 >ある文字(対象は複数)を含まない文字列をチェックしたい の「ある文字」が「壱拾AZ」だとすればそのまま[壱拾AZ]でTestして、マッチしたら否、マッチしなければ正という判定をすればよいのでは? (これだと質問内容のすり替えかなぁ…) ちゃんと、文字列全体をマッチさせようとするなら、 ^[^壱拾AZ]*$ とでもなるのだろうか。(←自信なし) (ついでに、VBAの末尾の$は、なんだか動作がやや曖昧だった記憶があります↓。怪しいのは$でなくて?だったかな?) http://oshiete1.goo.ne.jp/qa4821264.html
その他の回答 (1)
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは 質問がいまいち理解できてないのですが.. >上記の文字以外のチェックは、[^壱拾AZ]となるかと思いますが、 >チェック対象文字を含まない文字列をチェックするためには、 「上記の文字以外(の文字)」パターンを使って「上記の文字以外(の文字)で構成された文字列」のパターンを作りたいのですよね。 文字列なので1文字も文字列とすれば、「0回以上の繰返し」か「1回以上の繰返し」を使うとよいでしょう。 ●「0回以上の繰返し」 [^壱拾AZ][^壱拾AZ]* ●「1回以上の繰返し」(正規表現の実装の程度により使用不可もある) [^壱拾AZ]+
お礼
質問の意図がわかりづらいにも関わらず、 ご回答頂きまして、ありがとうござます。 ご提示頂きました内容は、非常に参考となり、大変助かりました。 ありがとうございました。
お礼
ご回答ありがとうございます。 早速試してみたところ、ご提示頂きました正規表現で うまく動作しそうです。 大変参考となりました。 ありがとうございます。