• ベストアンサー

以下の場合の正規表現の書き方を教えて下さい。

以下の場合の正規表現の書き方を教えて下さい。 「XXXにはマッチするがXXXYYYにはマッチしない」を一つの正規表現文字列で実現するには、どう記述すればよいですか? 例えば、「マイナス」にはマッチするが、「マイナスイオン」はマッチさせたくない場合です。 この例の「イオン」の部分は今のところ一種類で良いのですが、もし可能でしたら複数種のワードに対応できると嬉しいです。(マイナスイオンに加えて、「マイナスドライバー」もマッチしないなど) なんか間抜けな質問ですがよろしくお願いします。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

マイナス(?!イオン) じゃダメなんだっけ?

morondack
質問者

お礼

ありがとうございます。 その線で行けそうです。

その他の回答 (2)

  • YkazubonY
  • ベストアンサー率30% (26/86)
回答No.3

if ( $str =~ /~マイナス$/ ) { マイナスだけに、一致した場合の記述 } elsif ( $str =~ /~マイナス.*/ ) { マイナスドライバー等の場合の記述 }

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

マイナスの前後に何がついているとだめなのか? マイナスの電荷を持つ   これは良いの?マイナスに「の・・」がつながっている。 >もし可能でしたら複数種のワードに対応できると嬉しいです。(マイナスイオンに加えて、「マイナスドライバー」もマッチしないなど)  何が次に続けば駄目なのかなら、全部の言葉を書かなければ駄目だよ。

morondack
質問者

補足

質問が下手ですいません 「マイナス」でマッチした中から、「マイナスイオン」でもマッチしたものを除外するという意味です。 例えば 「僕が考えるにマイナスイオンはマイナスイオンだ」 この場合、「マイナス」でマッチしない 「僕が考えるにマイナスイオンはマイナスのイオンだ」 この場合は1回マッチする 複数のワードに対応とは、 「マイナスイオンとマイナスドライバーは相性が良い」 この例で「マイナスイオン」と「マイナスドライバー」を除外する(つまりマッチしない)としたいケースです。 結果として一つでもマッチしたかどうか分かれば十分です。