0

テキストのhttp://リンクのような部分に一致するこの RegEx 式があります。

([A-Za-z]{3,9}):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?(\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?

後でそれらをいくつかのコードでハイパーリンクに変換します。それは本当にうまくいきます。

ただし、テキストの http:// 部分は < img > タグでも見つかります。

<img src="http://www.nature.com/images/home_03/main_news_pic2013.02.19.jpg" alt="Pulpit rock" width="304" height="228">

そのため、既存の RegEx を変更して、テキストの http リンクのような部分に引用符またはアポストロフィが前に一致しないようにする必要があります。一致しない方法:

"http

[^"|'] で試しました:

[^"|']([A-Za-z]{3,9}):\/\/ ..........

しかし、それは機能しません。

4

1 に答える 1

2

否定の後読みを使用する必要があります (つまり、「先行しない」):

(?<!")http://…
于 2013-02-20T15:30:34.473 に答える