我有此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个项目。
答案 0 :(得分:1)
您可以在否定前瞻中添加[^"\/]*\.com
或[^"\/]*\.com(?![^\/])
替代项:
(?:href|src)="(?!(?:ht|f)tp|www|:|\/\/|[^"\/]*\.com)
如果您在(?![^\/])
之后添加该模式,则/
将需要com
或字符串结尾。