我正在尝试编写一个规则来匹配顶级域,后跟五位数字。我的问题出现了,因为我现有的 pcre 与我所描述的内容相匹配,但在 URL 的后面很晚,然后在我想要的时候。我希望它在 TLD 的第一次出现时匹配,而不是在其他任何地方匹配。检查这一点的简单方法是在 TLD 之前没有出现“/”字符时匹配它。我尝试使用negative-lookbehind,但这不起作用,因为它只能回顾一个字符。
例如:它目前的工作方式
domain.net/stuff/stuff=www.google.com/12345
匹配 .com/12345 即使我不想要这个匹配,因为它不是 URL 中的第一个 TLD
例如:我希望它如何工作
domain.net/12345/stuff=www.google.com/12345
在 .net/12345 上匹配并忽略 .com/12345 上的后续匹配
我现在的表情
(\.[a-z]{2,4})/\d{5}
编辑:重写它,所以如果将来有人遇到同样的问题,问题可能会更清楚。