私はRegExのコンセプトを理解していますが、これは実際に私が実際に自分自身を書くことを試みた最初の時です。RegEx - 一致前の文字でない
プロジェクトの一環として、特定のドメイン(実際にはドメインの配列ですが、単純にしておきましょう)に一致する文字列を解析しようとしています。
は、最初に私はこれを始めた:
url.match('www.example.com')
しかし、私はまた、このように入力を得ていた気づい:
http://www.someothersite.com/page?ref=http://www.example.com
これらの行意志当然の試合のためにwww.example.com
ですが、除外したいと思います。そこで、私はこれらの行に沿って考えていました。www.example.com
を含む行だけを一致させますが、?
文字の後には一致させないでください。これは私が思い付いたものです:
var reg = new RegExp("[^\\?]*" + url + "(\\.*)", "gi");
しかし、これは私が、私はまだ問題に持ってなけなしの知識使用していた恐れとして任意の提案をいただければ幸いです、動作するようには思えません。
編集: いくつかの説明。
- 入力はGET要求に記録されます。これらから、私はいくつかのドメインを除外したいと思っています。これらは0〜1の任意のサブドメイン(
example.com
,、www.somethirdsite.com
およびweb.example.net
がすべて有効である必要があります)を処理する必要があります。これらは変数に格納されます。 - 上記のリクエストが見つかりましたが、
http://www.someothersite.com/page?ref=https://www.example.com
とhttp://www.someothersite.com/page?ref=www.example.com
も処理できるようにしたいと思います。つまり、針がリクエストドメインの一部ではなくリクエストデータの一部である場合、私は一致。
Danneth、正規表現であまりにもうんざりしないでください。受け入れる拒否する入力のテストを書いてください。正規表現がこれらのテストを満たしていればそれを使用してください。さもなければ、あなたは本質的に些細なことである多くの時間を無駄にすることができます。 –
また、あなたの問題を解決する答えを受け入れる、参考になる回答をupvoteしてください。 –