0

<最初のスペースまたは発生するまでリンクを正規表現と一致させたい。私はこの正規表現を試しました

\b(((http|ftp)(.)?\:\/\/)?(www\.)?example\.com([^\s|<]+)?)\b

しかし、この正規表現の問題は、それが にも一致することexample.com.auです。だから私が一致させたいもの

example.com                      // match
example.com/somelink/link        // match

example.com.au                   // do not match
example.com.au/somelink/link     // do not match

最初のスペースまで一致または<出現

4

2 に答える 2

1

http://example.com/whateverには一致するが、 http://example.com.au/whateverには一致しないソリューションを次に示します。

/\b(((http|ftp)(.)?:\/\/)?(www\.)?example\.com(?!\.[\w\d])(\/[^\s<]*)?)\b/

これは、次のテキストに対してテストされました。

Match http://example.com/ but not http://example.com.au
This is a sentence about http://example.com/.
http://example.com<
http://example.com/asdf.asdf.asdf/ asdf
http://example.computer

否定先読みを使用して、example.com の後に続く を明確に除外します\.[\w\d]

于 2013-04-03T01:40:52.050 に答える
0

.com の後にドットを一致させたくないことを伝えるだけです。

\b(((http|ftp)(.)?\:\/\/)?(www\.)?example\.com([^\s|<|\.]+)?)\b

または、もっと賢く、.com の後に何かある場合は、.com の後にスラッシュが必要だと伝えます。

\b(((http|ftp)(.)?\:\/\/)?(www\.)?example\.com(\/[^\s|<]+)?)\b
于 2013-04-03T01:23:34.983 に答える