2011-12-07 5 views
0

私は、テキスト本体のリンクをチェックするために使用するURLの正規表現パターンを持っています。唯一の問題は、パターンはこのリンクURLのテキスト本文をチェックする正規表現ですか?

stackoverflow.com 

そして、この文は明らか

I'm a sentence.Next Sentence. 

私のパターンは.co.uk、ない強力なチェック.COMを行いますので、これは理にかなってと一致するということです。 com.auなど

stackoverflow.comと一致するようにしたいが、後者ではない。

私はRegexのエキスパートではないので、上のような文章には一致しないが、ボディテキスト内のすべてのタイプのURLをチェックするための良いRegexパターンを知っている人はいますか?

ドメイン拡張子を強く確認する必要がある場合は、解決しなければならないと思います。

私のパターンはありますが、私はそれが役に立たないと思います。

(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)[email protected])?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)? 
+0

正常に動作する正規表現が検索されましたか?あなた自身で作る必要がある理由はたくさんありますが、私は頼むと思っていました。また、(正規表現以外の)どの言語でプログラミングしていますか? –

答えて

1

私は間違いなく、他の誰かが(おそらくドメイン拡張子に強いチェックを含めることになる)にしたが、ここでは単に既存の正規表現を変更するための1つの可能な方法であることを作業正規表現を見つけることを示唆しています。

通常、ドメインの拡張子に大文字と小文字が混在しないことを前提にする必要があります。たとえば、.COMや.comが表示される可能性がありますが、混在しないドメイン拡張大文字と小文字を一致させないでください。

正規表現の途中に[\w]{2,4}がある場合は、これを([A-Z]{2,4}|[a-z]{2,4})に変更してください(新しいキャプチャされたグループが必要ない場合は(?:[A-Z]{2,4}|[a-z]{2,4}))。