gpt4 book ai didi

regex - 帮助正则表达式包含和排除

转载 作者:行者123 更新时间:2023-12-04 01:37:12 24 4
gpt4 key购买 nike

我想要一些关于正则表达式的帮助。

我正在尝试创建一个包含某些字符串并排除某些字符串的表达式。

例如:

我想包含任何包含移动性的 URL http://www.something.com/mobility/
但是我想排除任何包含 store http://www.something.com/store/mobility/ 的 URL

仅供引用,我有很多关键字要包含在内。目前我包括这样的/mobility|enterprise|products/i但是我发现它无法排除包含其他关键字的链接。

提前感谢您提供的任何帮助和见解。

_t

最佳答案

可以在一个正则表达式中完成所有这些操作,但您并不需要这样做。我认为如果您运行两个单独的测试,您将有更好的时间:一个用于您的包含规则,另一个用于您的排除规则。不确定您使用的是什么语言,所以我将使用 JavaScript 作为示例:

function validate(str) {
var required = /\b(mobility|enterprise|products)\b/i;
var blocked = /\b(store|foo|bar)\b/i;

return required.test(str) && !blocked.test(str);
}

如果你真的想以一种模式来做,尝试这样的事情:
/(?=.*\b(mobility|enterprise|products)\b)(?!.*\b(store|foo|bar)\b)(.+)/i
i最后意味着不区分大小写,因此如果您不使用 JavaScript,请使用您的语言等效项。

话虽如此,根据您对问题的描述,我认为您真正想要的是字符串操作。这是一个示例,再次使用 JS:
function validate(str) {
var required = ['mobility','enterprise','products'];
var blocked = ['store','foo','bar'];
var lowercaseStr = str.toLowerCase(); //or just use str if you want case sensitivity

for (var i = 0; i < required.length; i++) {
if (lowercaseStr.indexOf(required[i]) === -1) {
return false;
}
}

for (var j = 0; j < blocked.length; j++) {
if (lowercaseStr.indexOf(blocked[j]) !== -1) {
return false;
}
}
}

关于regex - 帮助正则表达式包含和排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5313896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com