とっととhoge書こう

ああだこうだ言わずテスト書いてhoge出す

プログラミング

正規表現でとあるパターン 「以外」をマッチさせたい場合

投稿日:

パターン書いたらちゃんと検証する

正規表現で、「とあるパターン以外でマッチさせたい」というケースが出てきました。
例えばリファラでドメインyahoo.co.jp以外をマッチさせたい的な。

対応には「否定先読み」「否定戻り読み」が必要だと分かりました。
参考
http://www-creators.com/archives/1827

例えば、google.co.jp / google.com / yahoo.co.jp からの流入に対して、マッチさせたい のであれば、

/^(https?:\/\/[^\/]*?yahoo\.co\.jp\/?|https?:\/\/[^\/]*?google\.(co\.jp|com)\/?).*?$/

といった形になりましすが、google.co.jp / google.com / yahoo.co.jp 以外をマッチさせたい 場合は

/^(?!(https?:\/\/[^\/]*?yahoo\.co\.jp\/?|https?:\/\/[^\/]*?google\.(co\.jp|com)\/?)).*?$/

といった形になります。

ちなみにお気づきかもですが、
上記正規表現は、サブドメインも想定した作りになっています。
たとえば search.yahoo.co.jp に対しても同様に除外できる感じです。

正規表現はエスケープも多いので、結果ぱっと見、よくわからない感じになりがちなのですが、もう少し見通しの良い書き方をしたいですね。

-プログラミング

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

「いまどきのJSプログラマーのための Node.jsとReactアプリケーション開発テクニック」で引っかかったところ

ググっても見つからなかったので、ちょっとメモで。 「いまどきのJSプログラマーのための Node.jsとReactアプリケーション開発テクニック」 をやっていたのですが、いくつかつまづいたのでそのお話 …

サイトをhttps化しました(そのときに参考にした記事と自分のやり方)

WordPressで運用しているこのサイトをSSL化しました。(URLがhttps)になっていると思います。 結論から言うとメインはこの記事と WordPressサイトをhttpからhttpsにSSL …

GitHubにリポジトリ作る

Privateリポジトリ無料になってからよく使うようになりました リポジトリ作るときの自分の手順メモ 適当なディレクトリで開発そのディレクトリのルートで、git initgit remote add …

[メモ]Reactのためのwebpack(2019.01)

ただのメモです。 package.json “dependencies”: { “@babel/core”: “^7.2.2”, “@babel/preset-react”: “^7.0.0”, “b …

no image

使わないと身につかないという当たり前のこと

しかし、それが「当たり前」と理解するにはなかなかかかったものでした。 「CORS」というものがありますが、略称で正確には「Cross-Origin Resource Sharing」、オリジン間リソー …