RegEx有效的相对URL在HTML的href和src链接中

时间:2019-04-18 12:56:47

标签: html regex

我有此RegEx,并已针对以下数据集进行了测试:

RegEx:/(href|src)\=\"(?!(ht|f)tp|www|:|\/\/)(\/)?/g

数据集:

href="/hello
href="hello/bob
href="new/hello/bob
href="hello/test.com/hello
href="abc.hello.com/hello <-- I want to exclude this type of url
href="www.google.com/hello
href="https://www.google.com
href="http://google.com
href="ftp://www.google.com
href="://google.com
href="//google.com

这里是带有以上输入的演示链接: https://regex101.com/r/1mCFWL/4

我遇到的问题是第四个测试项目abc.hello.com/hello也与RegEx匹配,我想排除在.com之前包含/的所有URL。

我正在尝试进行查找,但一直无法正常工作。 谁能帮助改善上述RegEx,以增加支持,以排除在.com之前包含/的URL?

编辑: 成功的匹配条件是仅匹配数据集中的前4个项目。

1 个答案:

答案 0 :(得分:1)

您可以在否定前瞻中添加[^"\/]*\.com[^"\/]*\.com(?![^\/])替代项:

(?:href|src)="(?!(?:ht|f)tp|www|:|\/\/|[^"\/]*\.com)

请参见regex demoRegulex graph

enter image description here

如果您在(?![^\/])之后添加该模式,则/将需要com或字符串结尾。