Я пытаюсь найти все href
или src
, не начинающиеся с косой черты или хэша.
Например,
<a href="img/foo.png"></a> // should match
<a href='img/foo.png'></a> // should match
<img src='img/foo.png'></a> // should match
<a href="#"></a> // should not match
<a href="/img/ajax.gif"></a> // should not match
<img src='/img/ajax.gif'></a> // should not match
Я пытался решить эту проблему с помощью Отрицательный взгляд вперед .
(href|src)=["']((?!\/)|(?!#)).*["']
![enter image description here](https://i.stack.imgur.com/Tz24W.png)
Но это соответствует всему ...
![enter image description here](https://i.stack.imgur.com/Gbupg.png)
Затем я попробовал это с помощью метода "Ни один из":
(href|src)=["\'][^\/#].*['"]
![enter image description here](https://i.stack.imgur.com/wip4m.png)
![enter image description here](https://i.stack.imgur.com/ZKIbK.png)
Это работает.Почему Отрицательный Lookahead терпит неудачу?