Regex使用'?检测URL'结尾处的字符

Regex to detect urls with '?' character at the end

本文关键字:结尾处 字符 URL 使用 Regex 检测      更新时间:2023-09-26

我找到了很多解决方案,但没有一个对我有用

举个例子,我想查找以www.开头、以空格或?结尾的URL。在这种情况下,我的意思是它以?结尾,而不是说它一定是一个与CGI相关的URL。

我正在尝试使用regex

var r = /(^|['s'?])(www'..+?(?=(['s]|'?|($))))/g;

我的示例使用:http://jsfiddle.net/DKNat/2/

如何在正则表达式中使用'?来防止包含/的URL在?之前结束?

http://jsfiddle.net/DKNat/11/

我无法解决url末尾DOT的最后一个问题。任何身体都能帮上忙吗?

试试这个:

var r = /(^|'??)(www'.[^'?]+)/g;

我在这里更新了你的小提琴:

http://jsfiddle.net/DKNat/3/

更新:

我明白你现在想做什么了。不幸的是,除了/之外,两个字符串本质上是相同的,所以除非你想让正则表达式假设斜线后面的?表示CGI调用,否则你无能为力

var r = /(^|'??)(www'.[^'?]+'/[^'/]+'?[^'?]+|www'.[^'?]+)/g;

更新小提琴:

http://jsfiddle.net/DKNat/5/

更新2:确定需求后,这是添加到fiddle 10:的最终RegExp I

var r = /(^|['?'s])(www'.[^'? ]+'/[^'/ ]*'?[^'? ]+|www'.[^'? ]+)/g;