Regex 正则表达式改为“;“忽略”;不是";排除“;
我完全迷路了。我需要一个正则表达式 可以检测以下4个起始URL中的任意一个Regex 正则表达式改为“;“忽略”;不是";排除“;,regex,thunderbird,Regex,Thunderbird,我完全迷路了。我需要一个正则表达式 可以检测以下4个起始URL中的任意一个 ^(.*http://.*|.*http%3A%2F%2F.*|.*https://.*|.*https%3A%2F%2F.*)$ 还有 应检测: (任何标点、空格或退格)(大写或小写字母w的3倍)(一点)(任何) 还有。哪个是重要的 应该忽略,但不排除。以下精确字符串(该字符串是否存在于页面中) 这对我来说很复杂,因为我仍然需要将其包含在正则表达式行中 即使它被忽略,否则,它将匹配并在中找到 (.*http
^(.*http://.*|.*http%3A%2F%2F.*|.*https://.*|.*https%3A%2F%2F.*)$
还有
应检测:
(任何标点、空格或退格)(大写或小写字母w的3倍)(一点)(任何)
还有。哪个是重要的
应该忽略,但不排除。以下精确字符串(该字符串是否存在于页面中)
这对我来说很复杂,因为我仍然需要将其包含在正则表达式行中
即使它被忽略,否则,它将匹配并在中找到
(.*http://.*|.*http%3A%2F%2F.*|.*https://.*|.*https%3A%2F%2F.*)
我的目标是找到/匹配除此之外的任何url
http://www.w3.org
即使它在页面中,或者它不存在。
因此,如果页面中只有以下内容:
http://www.w3.org
&没有其他url。。那就不应该匹配了
谢谢Tyler,但我的正则表达式知识几乎为零,我只能知道当我右键单击命令来选择regulazy或Reguexr中的操作时命令会做什么(( 因此,我根据提供给您的url更新了我的命令: href%3D%22http%3A%2F%2Fwww%2Edommermuth%2D1%2Ecom &它的工作原理是: https?(:/|%3A%2F%2F)(?!www.w3.org)(*) 但由于我缺乏知识,我不明白下面该怎么做 “您可以做的是使http部分成为可选的,或者必须匹配http或www或两者。我最近回答的另一个问题中出现了这种类型的正则表达式-多个preg_替换不同URL的正则表达式” 我尝试添加此项,但不起作用: (www 我现在所缺少的就是检测以www开头的URL (任何标点符号、空格或退格)(大写或小写字母w的3倍)(一个点)(直到它到达空格或行尾的任何东西)好的,请尝试以下操作:
/\bhttps?(://|%3A%2F%2F)(?!www\.w3\.org)(.*)\b/g
在此处测试:
该测试链接使用javascript样式的正则表达式,但应该在其他地方使用
重要的部分是后半部分——一个否定的前瞻,它检查接下来的内容不是确切的文本www.w3.org
我压缩了您拥有的内容:我的匹配http
,然后是可选的s
,然后是://
或%3A%2F%2F
我将整个内容包装在单词边界中,您可以将其更改为引号或任何您需要的内容。全局标志允许您匹配多个项目
关于OP的问题: D%22 可能出现在http或https之前 缺少此项并应匹配: href%3D%22http%3A%2F%2Fwww%2Edommermuth%2D1%2Ecom 如果这很重要,只需删除regex前后的单词boundary
\b
,这样http就可以在任何地方匹配
regex命令应该检测:(任何标点、空格或退格)(大写或小写字母w的3倍)(一个点)(任何内容)
此正则表达式将无法匹配这样的链接-查找www本身并不是检查链接的好方法。您可以做的是将http部分设置为可选的,或者必须匹配http或www或两者。我最近回答的另一个问题中出现了这种正则表达式-
编辑#2: (任何标点符号、空格或退格)(大写或小写字母w的3倍)(一个点)(直到到达空格或行尾的任何东西) 正如我上面提到的,您所描述的内容将与类似的url不匹配-但如果这是您想要的,请使用以下内容:
(\W|^)[wW]{3}\.[^\s$]+
相反,我想你想要的是这个,这是我的第一个答案和上面另一篇文章的链接的组合
((https?(://|%3A%2F%2F))(www\.)|(https?(://|%3A%2F%2F))|(www\.))(?!(www\.)?w3\.org)([^</\?\s]+)[^<\s]*
((https?(:/|%3A%2F%2F))(www\)(https?(:/|%3A%2F%2F))(www\)(?!(www\)?w3\.org)([^不要链接到其他网站上的帖子(它们往往会过期)。学会简单地正确设置问题的格式(代码中的URL不算作链接).您是否需要将其全部放在1个正则表达式中?为什么不合并2个正则表达式,第一个要匹配,第二个要排除?您使用的是哪种编码语言?我不理解“忽略”和“排除”之间的区别。您想编写一个与特定URL格式匹配但与w3格式不匹配的正则表达式。对我来说,这仍然是排除。.Net正则表达式对吗?如果是这样,请将其添加到问题标记中。或者,如果可能,您最终可以尝试修复此问题,我修改了我的命令:请注意,这比OP稍微宽松一些,并且将匹配https%3A/%2F
。作为等价物,您需要https?(://|%3A%2F%2F)
为了完整性,您应该避开“.s”-否则,这也会忽略wwxw3.org。不清楚这是用来做什么的,但这种类型的遗漏是细微错误和安全漏洞的来源。感谢您捕捉到@gregmac-更新了正则表达式和link@user3451630wye.cg/ye3
不应匹配,贝卡使用它不遵循您给我的任何规则。它不是以http或www开头的,这是您用来查找链接的。我不知道您现在尝试使用的规则。这是我的最后一个命令,其中有一个错误,在这里解释:
((https?(://|%3A%2F%2F))(www\.)|(https?(://|%3A%2F%2F))|(www\.))(?!(www\.)?w3\.org)([^</\?\s]+)[^<\s]*