文字列内のURLを検索するための正規表現


95

文字列内のURLを見つけるために使用できる正規表現を知っている人はいますか?文字列全体がURLであるかどうかを判断するために、Googleで多くの正規表現を見つけましたが、文字列全体でURLを検索できる必要があります。例えば、私は見つけることができるようにしたいwww.google.comhttp://yahoo.com次の文字列で:

Hello www.google.com World http://yahoo.com

文字列内の特定のURLを探していません。文字列内のすべてのURLを探しているので、正規表現が必要です。


文字列全体の式がある場合は、文字列の一部と一致させるために^と$を削除するだけです。
entonio

回答:


206

これは私が使っているものです

(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?

私のために働く、あなたのためにも働くはずです。


7
スラッシュをエスケープすることを忘れないでください。
マーク

1
2017年で、Unicodeドメイン名はいたるところにあります。\w国際記号と一致しない場合があります(正規表現エンジンによって異なります)a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF。代わりに範囲が必要です。
Michael Antipin 2017

3
これは一般的な目的には問題ありませんが、うまくいかない場合が多くあります。これにより、リンクの前にプロトコルが付けられます。プロトコルを無視することを選択した場合、test @ tests.comの場合と同様に、電子メールの終了が受け入れられます。
squazz 2017

4
べきではない[\w_-]こと[\w-]?なぜなら\w試合_既に。mozillaドキュメント
2017年

2
賛成ですが、この回答は質問が求めているものでは機能しませんwww.yahoo.com"""(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?""".r.findAllIn("www.google.com").toList。答えの
説明もありません

45

この使用に最適な正規表現はないと思います。ここでかなりしっかりしたものを見つけました

/(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$])/igm

ここに投稿された他のものと比較したいくつかの違い/利点:

  • メールアドレスと一致しませ
  • localhost:12345と一致します
  • それはのようなものを検出しませんmoo.comなしhttpwww

例についてはこちらをご覧ください


4
www.eと一致しますこれは有効なURLではありません
Ihor Herasymchuk 2016

このgオプションは、すべての正規表現の実装(Rubyの組み込み実装など)では有効ではありません。
Huliax

23
text = """The link of this question: /programming/6038061/regular-expression-to-find-urls-within-a-string
Also there are some urls: www.google.com, facebook.com, http://test.com/method?param=wasd
The code below catches all urls in text and returns urls in list."""

urls = re.findall('(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-?=%.]+', text)
print(urls)

出力:

[
    '/programming/6038061/regular-expression-to-find-urls-within-a-string', 
    'www.google.com', 
    'facebook.com',
    'http://test.com/method?param=wasd'
]

Kotlin val urlRegex = "(?:( ?: https?| ftp):\\ / \\ /)?[\\ w / \\-?=%。] + \\。[\\ w / \\- ?=%。] + "
AkshayNandwana19年

ミスの&URLのパラメータ。例えばhttp://test.com/method?param=wasd&param2=wasd2ミスPARAM2
TrophyGeek

10

ここで提供されるソリューションはどれも、私が抱えていた問題/ユースケースを解決しませんでした。

私がここで提供したものは、私がこれまでに見つけた/作った最高のものです。処理できない新しいエッジケースが見つかったら、更新します。

\b
  #Word cannot begin with special characters
  (?<![@.,%&#-])
  #Protocols are optional, but take them with us if they are present
  (?<protocol>\w{2,10}:\/\/)?
  #Domains have to be of a length of 1 chars or greater
  ((?:\w|\&\#\d{1,5};)[.-]?)+
  #The domain ending has to be between 2 to 15 characters
  (\.([a-z]{2,15})
       #If no domain ending we want a port, only if a protocol is specified
       |(?(protocol)(?:\:\d{1,6})|(?!)))
\b
#Word cannot end with @ (made to catch emails)
(?![@])
#We accept any number of slugs, given we have a char after the slash
(\/)?
#If we have endings like ?=fds include the ending
(?:([\w\d\?\-=#:%@&.;])+(?:\/(?:([\w\d\?\-=#:%@&;.])+))*)?
#The last char cannot be one of these symbols .,?!,- exclude these
(?<![.,?!-])

1
このJavaScriptをフレンドリーにする方法はありますか?名前付きキャプチャグループはそこで完全に機能していないため、プロトコル値チェックは検証されません。
einord

6

この正規表現パターンはあなたが望むものを正確に処理すると思います

/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/

これは、URLを抽出するためのスニペットの例です。

// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls
$text = "The text you want  /programming/6038061/regular-expression-to-find-urls-within-a-string to filter goes here.";

// Check if there is a url in the text
preg_match_all($reg_exUrl, $text, $url,$matches);
var_dump($matches);

5

上記の回答はすべて、URLのUnicode文字と一致しません。例:http//google.com?query =đức+ filan +đã+ search

解決策として、これは機能するはずです。

(ftp:\/\/|www\.|https?:\/\/){1}[a-zA-Z0-9u00a1-\uffff0-]{2,}\.[a-zA-Z0-9u00a1-\uffff0-]{2,}(\S*)

2
URLに関するRFC1738faqs.org/rfcs/rfc1738.html)に従って、Unicode文字は禁止されていました。標準に準拠するには、パーセントエンコードする必要があります。最近変更された可能性がありますが、w3.org
International / articles /

@mrswadge私はケースをカバーするだけです。すべての人が標準を気にかけているかどうかはわかりません。情報ありがとうございます。
Duc Filan 2016

これだけが、「example.com」「www.exmaple.com」「example.com」「example.co.in」「exmaple.com/?q='me '」などのURLを持っている私にとって完璧に機能しました
Krissh

4

リンクの選択を厳しくする必要がある場合は、次のことを行います。

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

詳細については、こちらをお読みください。

URLを照合するための改善されたリベラルで正確な正規表現パターン


2
そうしないでください。regular-expressions.info/catastrophic.html ...それはあなたのアプリケーションを殺す
オーラ

4

私が見つかりました。これをサブディレクトリの部分を含む、ほとんどのサンプルのリンクを、カバーします。

正規表現は次のとおりです。

(?:(?:https?|ftp):\/\/|\b(?:[a-z\d]+\.))(?:(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))?\))+(?:\((?:[^\s()<>]+|(?:\(?:[^\s()<>]+\)))?\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))?

3

URLパターンがある場合は、文字列で検索できるはずです。念のパターンが持っているdoesntのことを確認^して$始まり、URL文字列の終わりをマークします。したがって、PがURLのパターンである場合は、Pに一致するものを探します。


これは、文字列全体がURLであるかどうかを確認するために私が見つけた正規表現です。あなたが言ったように、私は最初に^を取り出し、最後に$を取り出しましたが、それでも機能しませんでした。私は何が間違っているのですか? ^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*[^\.\,\)\(\s]$
user758263

使用している言語を示しておくと役立つ場合があります。いずれにせよ、必ず確認してくださいhttp://regexpal.com/。そこで、文字列が正しくなるまで、文字列に対してさまざまな式をテストできます。
entonio

@ user758263-URLにこのような複雑な正規表現が本当に必要ですか?あなたが実際に見つけるかもしれない可能なURLに依存します。正規表現の試用については、gskinner.com / RegExrも参照してください。また、Communityタブの右側には、URL用のサンプルを含む数百のサンプルがあります
manojlds

考えられるすべてのURLを検索しようとしていますが、C ++を使用しています。リンクentonioとmanojldsをありがとう。gskinnerサイトにはサンプルが含まれていたため、特に役に立ちました。
user758263 2011年

3

以下の正規表現を使用して、文字列内のURLを検索しました。

/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/

2
[a-zA-Z]{2,3}TLDのマッチングには本当に不十分です。公式リストを参照してください:data.iana.org/TLD/tlds-alpha-by-domain.txt
Toto


2

短くてシンプル。私はまだjavascriptコードでテストしていませんが、うまくいくようです:

((http|ftp|https):\/\/)?(([\w.-]*)\.([\w]*))

regex101.comのコード

コードプレビュー


1
まさに私が探していたものだったので、あなたの正規表現が好きでした。検証ではなく、一部のテキストからURLを識別して削除する必要がありました。レールで働いた。
ダグマー

@Dagmarそれを聞いてうれしいです:)
bafsar19年


1

これは、(必要なものに応じて)Rajeevの答えをわずかに改善/調整したものです。

([\w\-_]+(?:(?:\.|\s*\[dot\]\s*[A-Z\-_]+)+))([A-Z\-\.,@?^=%&amp;:/~\+#]*[A-Z\-\@?^=%&amp;/~\+#]){2,6}?

一致するものと一致しないものの例については、ここを参照してください。

これなしでURLをキャッチしたかったので、「http」などのチェックを削除しました。いくつかの難読化されたURLをキャッチするために正規表現にわずかに追加しました(つまり、ユーザーが「。」の代わりに[ドット]を使用する場合)。最後に、「\ w」を「AZ」と「{2,3}」に置き換えて、v2.0や「moo.0dd」などの誤検知を減らしました。

この歓迎の改善。


[a-zA-Z]{2,3}TLDのマッチングには本当に不十分です。公式リストを参照してください:data.iana.org/TLD/tlds-alpha-by-domain.txt。また、正規表現が一致しても、_.........&&&&&&それが有効なURLであるかどうかはわかりません。
トト

そのJESUIS CHAELIEに感謝します、改善のための提案(特に誤検知)はありますか?
avjaarsveld 2015年

1

おそらく単純すぎますが、作業方法は次のようになります。

[localhost|http|https|ftp|file]+://[\w\S(\.|:|/)]+

私はPythonでテストしましたが、文字列の解析に前後にスペースが含まれ、URLにスペースが含まれていない限り(これまでに見たことはありません)、問題ないはずです。

これはそれを実証するオンラインIDEです

ただし、これを使用する利点は次のとおりです。

  • IPアドレスだけでなく認識file:localhostます
  • それらなしでは決して一致しません
  • #またはなどの異常な文字を気にしません-(この投稿のURLを参照)

1

@JustinLeveneによって提供された正規表現を使用すると、バックスラッシュに適切なエスケープシーケンスがありませんでした。正しくなるように更新され、FTPプロトコルにも一致するように条件が追加されました。プロトコルの有無にかかわらず、「www」なしのすべてのURLに一致します。

コード: ^((http|ftp|https):\/\/)?([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?

例:https//regex101.com/r/uQ9aL4/65



1

自分で書いた:

let regex = /([\w+]+\:\/\/)?([\w\d-]+\.)*[\w-]+[\.\:]\w+([\/\?\=\&\#]?[\w-]+)*\/?/gm

次のすべてのドメインで機能します。

https://www.facebook.com
https://app-1.number123.com
http://facebook.com
ftp://facebook.com
http://localhost:3000
localhost:3000/
unitedkingdomurl.co.uk
this.is.a.url.com/its/still=going?wow
shop.facebook.org
app.number123.com
app1.number123.com
app-1.numbEr123.com
app.dashes-dash.com
www.facebook.com
facebook.com
fb.com/hello_123
fb.com/hel-lo
fb.com/hello/goodbye
fb.com/hello/goodbye?okay
fb.com/hello/goodbye?okay=alright
Hello www.google.com World http://yahoo.com
https://www.google.com.tr/admin/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
https://google.com.tr/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
http://google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
ftp://google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
www.google.com.tr/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
www.google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
drive.google.com/test/subPage?qs1=sss1&qs2=sss2&qs3=sss3#Services
https://www.example.pl
http://www.example.com
www.example.pl
example.com
http://blog.example.com
http://www.example.com/product
http://www.example.com/products?id=1&page=2
http://www.example.com#up
http://255.255.255.255
255.255.255.255

ここでregex101でどのように機能するか確認し、必要に応じて調整できます


0

2つのドットまたはピリオドの間のテキストを検索するロジックを使用します

以下の正規表現はPythonで正常に機能します

(?<=\.)[^}]*(?=\.)



0
(?:vnc|s3|ssh|scp|sftp|ftp|http|https)\:\/\/[\w\.]+(?:\:?\d{0,5})|(?:mailto|)\:[\w\.]+\@[\w\.]+

各部分の説明が必要な場合は、regexr [。] comで試してみてください。ここでは、すべてのキャラクターの優れた説明が得られます。

これは「|」で区切られます または「OR」。使用可能なすべてのURIに「//」があるわけではないため、ここで、照合する対象のスキームまたは条件のリストを作成できます。


0

私はc#Uriクラスを利用しましたが、IPアドレス、ローカルホストでうまく機能します

 public static bool CheckURLIsValid(string url)
    {
        Uri returnURL;

       return (Uri.TryCreate(url, UriKind.Absolute, out returnURL)
           && (returnURL.Scheme == Uri.UriSchemeHttp || returnURL.Scheme == Uri.UriSchemeHttps));


    }

0

私はStefanHenzeのソリューションが好きでしたが、34.56を取得します。それはあまりにも一般的で、私は未解析のhtmlを持っています。URLには4つのアンカーがあります。

www、

http:\(およびco)、

。続いて文字、次に/、

または文字。およびこれらの1つ:https//ftp.isc.org/www/survey/reports/current/bynum.txt

私はこのスレッドから多くの情報を使用しました。皆さん、ありがとうございました。

"(((((http|ftp|https|gopher|telnet|file|localhost):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]{2,200}(?:(?:\\.[\\w_-]+)*))((\\.[\\w_-]+\\/([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(\\.((org|com|net|edu|gov|mil|int|arpa|biz|info|unknown|one|ninja|network|host|coop|tech)|(jp|br|it|cn|mx|ar|nl|pl|ru|tr|tw|za|be|uk|eg|es|fi|pt|th|nz|cz|hu|gr|dk|il|sg|uy|lt|ua|ie|ir|ve|kz|ec|rs|sk|py|bg|hk|eu|ee|md|is|my|lv|gt|pk|ni|by|ae|kr|su|vn|cy|am|ke))))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"

上記は、「eurls:www.google.com、facebook.com、http://test.com/」のような単一の文字列として返される文字列を除いて、ほぼすべてを解決します。Tbhidkなぜgopherなどを追加したのか。ProofRコード

if(T){
  wierdurl<-vector()
  wierdurl[1]<-"https://JP納豆.例.jp/dir1/納豆 "
  wierdurl[2]<-"xn--jp-cd2fp15c.xn--fsq.jp "
  wierdurl[3]<-"http://52.221.161.242/2018/11/23/biofourmis-collab"
  wierdurl[4]<-"https://12000.org/ "
  wierdurl[5]<-"  https://vg-1.com/?page_id=1002 "
  wierdurl[6]<-"https://3dnews.ru/822878"
  wierdurl[7]<-"The link of this question: /programming/6038061/regular-expression-to-find-urls-within-a-string
  Also there are some urls: www.google.com, facebook.com, http://test.com/method?param=wasd
  The code below catches all urls in text and returns urls in list. "
  wierdurl[8]<-"Thelinkofthisquestion:/programming/6038061/regular-expression-to-find-urls-within-a-string
  Alsotherearesomeurls:www.google.com,facebook.com,http://test.com/method?param=wasd
  Thecodebelowcatchesallurlsintextandreturnsurlsinlist. "
  wierdurl[9]<-"Thelinkofthisquestion:/programming/6038061/regular-expression-to-find-urls-within-a-stringAlsotherearesomeurlsZwww.google.com,facebook.com,http://test.com/method?param=wasdThecodebelowcatchesallurlsintextandreturnsurlsinlist."
  wierdurl[10]<-"1facebook.com/1res"
  wierdurl[11]<-"1facebook.com/1res/wat.txt"
  wierdurl[12]<-"www.e "
  wierdurl[13]<-"is this the file.txt i need"
  wierdurl[14]<-"xn--jp-cd2fp15c.xn--fsq.jpinspiredby "
  wierdurl[15]<-"[xn--jp-cd2fp15c.xn--fsq.jp/inspiredby "
  wierdurl[16]<-"xnto--jpto-cd2fp15c.xnto--fsq.jpinspiredby "
  wierdurl[17]<-"fsety--fwdvg-gertu56.ffuoiw--ffwsx.3dinspiredby "
  wierdurl[18]<-"://3dnews.ru/822878 "
  wierdurl[19]<-" http://mywebsite.com/msn.co.uk "
  wierdurl[20]<-" 2.0http://www.abe.hip "
  wierdurl[21]<-"www.abe.hip"
  wierdurl[22]<-"hardware/software/data"
  regexstring<-vector()
  regexstring[2]<-"(http|ftp|https)://([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[3]<-"/(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#\\/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#\\/%=~_|$])/igm"
  regexstring[4]<-"[a-zA-Z0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]?"
  regexstring[5]<-"((http|ftp|https)\\:\\/\\/)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[6]<-"((http|ftp|https):\\/\\/)?([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?"
  regexstring[7]<-"(http|ftp|https)(:\\/\\/)([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?"
  regexstring[8]<-"(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#/%=~_|$])"
  regexstring[10]<-"((http[s]?|ftp):\\/)?\\/?([^:\\/\\s]+)((\\/\\w+)*\\/)([\\w\\-\\.]+[^#?\\s]+)(.*)?(#[\\w\\-]+)?"
  regexstring[12]<-"http[s:/]+[[:alnum:]./]+"
  regexstring[9]<-"http[s:/]+[[:alnum:]./]+" #in DLpages 230
  regexstring[1]<-"[[:alnum:]-]+?[.][:alnum:]+?(?=[/ :])" #in link_graphs 50
  regexstring[13]<-"^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$"
  regexstring[14]<-"(((((http|ftp|https):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]+(?:(?:\\.[\\w_-]+)*))((\\.((org|com|net|edu|gov|mil|int)|(([:alpha:]{2})(?=[, ]))))|([\\/]([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"
  regexstring[15]<-"(((((http|ftp|https|gopher|telnet|file|localhost):\\/\\/)|(www\\.)|(xn--)){1}([\\w_-]+(?:(?:\\.[\\w_-]+)+))([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(([\\w_-]{2,200}(?:(?:\\.[\\w_-]+)*))((\\.[\\w_-]+\\/([\\w.,@?^=%&:\\/~+#-]*[\\w@?^=%&\\/~+#-])?)|(\\.((org|com|net|edu|gov|mil|int|arpa|biz|info|unknown|one|ninja|network|host|coop|tech)|(jp|br|it|cn|mx|ar|nl|pl|ru|tr|tw|za|be|uk|eg|es|fi|pt|th|nz|cz|hu|gr|dk|il|sg|uy|lt|ua|ie|ir|ve|kz|ec|rs|sk|py|bg|hk|eu|ee|md|is|my|lv|gt|pk|ni|by|ae|kr|su|vn|cy|am|ke))))))(?!(((ttp|tp|ttps):\\/\\/)|(ww\\.)|(n--)))"
    }

for(i in wierdurl){#c(7,22)
  for(c in regexstring[c(15)]) {
    print(paste(i,which(regexstring==c)))
    print(str_extract_all(i,c))
  }
}

-1

これは最高のものです。

NSString *urlRegex="(http|ftp|https|www|gopher|telnet|file)(://|.)([\\w_-]+(?:(?:\\.[\\w_-]+)‌​+))([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])?";

-1

これは最も単純なものです。これは私にとってはうまくいきます。

%(http|ftp|https|www)(://|\.)[A-Za-z0-9-_\.]*(\.)[a-z]*%

-1

簡単です。

このパターンを使用します。 \b((ftp|https?)://)?([\w-\.]+\.(com|net|org|gov|mil|int|edu|info|me)|(\d+\.\d+\.\d+\.\d+))(:\d+)?(\/[\w-\/]*(\?\w*(=\w+)*[&\w-=]*)*(#[\w-]+)*)?

次のリンクが含まれている場合に一致します。

許可されるプロトコル:http、https、およびftp

許可されるドメイン:*。com、*。net、*。org、*。gov、*。mil、*。int、*。edu、*。info、*。meまたはIP

許可されるポート:true

許可されるパラメーター:true

許可されたハッシュ:true

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.