正規表現でURLを検出するパターンは
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
となります。
または、
(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)
上記のパターンではftpのURLも検出できます。
解説
- () はグループ化を表します。グループ化されたパターンは一文字とみなされます。(AB)+は AB,ABAB,ABABAB...を表します。
- \w は英数字と下線(アルファベット、数字、下線)を表します。[0-9A-Za-z_] と同じ意味になります。
- + は直前の文字の1回以上の繰り返しを意味します
- []はグループを表します。括弧内で指定した文字のいずれかとなります。[-+.']は"-"か"+"か"."か"'"のどれかという意味になります。
- * は直前の文字の0回以上の繰り返しを意味します。
- \. は"."の文字を表します。\を除いた"."は任意の一文字を示す意味になるためです。
- |(縦棒)は(A|B)と記述し、AまたはBのパターンの意味を持ちます。
- ? は直前の文字が1つもしくは無いという意味です。
コード例(C#)
private void button1_Click(object sender, EventArgs e)
{
Regex reg = new Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
Match match = reg.Match(textBox1.Text);
if (match.Success == true) {
textBox2.Text = "マッチしました。";
}
else {
textBox2.Text = "マッチしませんでした。";
}
}
登録日 :2011-02-03 最終更新日 :2014-02-25