• ベストアンサー

[正規表現]特定の範囲のIPアドレスをヒット

正規表現について教えてください。 ある範囲のIPアドレスを正規表現でヒットさせたいのですが、 どう表記したらいいのでしょうか? たとえば、xx.96.0.0からxx.111.255.255の範囲をヒットさせたい場合、 61.9[6-9].|61.1[0-1][0-1]. と記述するのでしょうか? いい方法があれば教えてください。

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

  • ベストアンサー
  • basil
  • ベストアンサー率35% (148/420)
回答No.2

すくなくとも、質問内の正規表現ではだめでしょうね。 とりあえず、これでどう? xx\.(9[6-9]|10[0-9]|11[01])\.[0-9]{1,3}\.[0-9]{1,3} いかがでしょう。

wb013
質問者

お礼

ご回答ありがとうございます。 この構文でできました。ありがとうございました。

その他の回答 (2)

noname#198951
noname#198951
回答No.3

最上位バイトは同じということでしょうか? xx.9[6-9]..*..*|xx.1[0][0-9]..*..*|xx.111..*..* じゃないでしょうか? (正規表現がなんか違うかも) wb013さんの式だとxx.100.*.*~xx.109.*.*が範囲に入らないような気がします。

wb013
質問者

お礼

ご回答ありがとうございます。 そうです、上位は同じ、として考えています。こちらの正規表現でもかのうですね。 ありがとうございました。

  • pon_kotu
  • ベストアンサー率21% (8/38)
回答No.1

正規表現よりは split をつかって、配列取得して 範囲をifで指定したほうがいいと思います

wb013
質問者

お礼

ご回答ありがとうございます。 カテゴリ違いかな、と思いましたがここに質問してしまいました。すみません。 正規表現のフィルタリングを提供しているメールサービス(wakwak)を利用しており、韓国、中国を経由したメールを受信拒否するために質問させていただきました。なので、splitは使用できません。

関連するQ&A