0

次の text/html を取得しました。

Hello ! You should check this link : http://google.com
And this link too : <a href="http://example.com">http://example2.com</a>

正規表現でテキスト内の URL をキャッチして、それらを<a>. 次の正規表現を取得しました:

var REG_EXP = /[^">]((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)[^"<]/gi;

しかし、私の正規表現もキャッチhttp://example.comし、http://example2.com. そして、これを回避するためにそれを改良する方法がわかりません。

4

2 に答える 2

0

これはあなたのニーズに合うかもしれません:

(?<!href=")(http://[a-z0-9]++(?:[.-:/?&=][a-z0-9]+)++)(?!</a>)

私が使用した URL パターンは非常に単純で寛大であることに注意してください。

http://[a-z0-9]+(?:[.-:/?&=][a-z0-9]+)+

この例<a href="$1">$1</a>のように一致を置き換えるだけです。

この種の仕事を解決しようとするとき、正規表現にあまり期待しないでください。これは、彼らが行っていることではありません。

于 2013-06-25T08:11:57.063 に答える