regex - URL 匹配正则表达式:正面和负面术语
问题描述
我正在尝试在 URL 匹配正则表达式中匹配否定和肯定术语。
“Word1”和“Word2”是负数,“Word3”是正数。URL 必须包含肯定关键字,并且没有要匹配的否定关键字。
https://example.net/word3 - 匹配
https://example.net/word3/word2 - 不匹配
https://example.net/word3/word1 - 不匹配
目前我也将主页排除在外,但对于正面匹配,我认为这将是不必要的。
^((?!(word1|word2|http(s?):\/\/example\.net\/?($|[?#][&=#+%0-9a-zA-Z]+$))).)*$
如何在一个字符串中使用正负匹配?
解决方案
您可以使用以下正则表达式:
^(?=.*word3)(?!.*word(?:1|2)).*$
它首先匹配start
of 字符串,然后使用正数look ahead
for 'word3'
,然后使用negative look ahead
for'word'
后跟 1 或 2。
最后它匹配字符串的其余部分(如果它通过了测试)。
推荐阅读
- typescript - resolvejs 有什么好的现代打字稿示例吗?
- r - 在R中的两个条件下合并两列
- optimization - MT5ForConditionalGeneration 与 Pytorch-lightning 给出 attribute_error
- android - getStringExtra() 函数返回 Intent { (有额外) }
- tensorflow - 带有张量流的 ImportError
- python - 如何手动从数组中选择值
- machine-learning - 训练人脸检测器/分类器的合适方法是什么?
- python - 计算图像中两个像素之间的距离
- c# - net core 5.0 .FirstOrDefault()' 无法翻译
- html - 有没有一种方法可以通过单击图像将您带到使用超链接的页面?