質問

私のC#のプログラムでは、私は、各ページからソースを取得し、正規表現を経由してURLを取得することで動作Googleの検索機能を、書いています。

私の実際の正規表現があります:

(?:(?:(?:http)://)(?:w{3}\\.)?(?:[a-zA-Z0-9/;\\?&=:\\-_\\$\\+!\\*'\\(\\|\\\\~\\[\\]#%\\.])+)

これは、現時点では良い作品が、私はhttp://www.example.com/forums/arcade.php?efdf=332

のような例のURLの取得します

私はちょうど終わり?efdf=332ことなく、この場合のURLを取得したい。

だから私は正規表現を変更する必要がありますか?

役に立ちましたか?

解決

http://(?:www\.)?[a-zA-Z0-9/;&=:_$+!*'()|~\[\]#%.\\-]+
あなたの正規表現(私は不必要な嫌なものの多くを削除した)と同じように行いますが?前にリンクをマッチング停止します。

はC#:

Regex regexObj = new Regex(@"http://(?:www\.)?[a-zA-Z0-9/;&=:_$+!*'()|~\[\]#%.\\-]+")
、私は(httpsなど、何ftpについてmailto。?)確かこれは、一致するURLのような良い方法ではありませんよ。

他のヒント

あなたは、さまざまな部分にアクセスするために Uri のクラスを使用することができますURLのいずれかの端からクエリ文字列を削除する、またはしたい部分を連結します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top