我找到了很多解决方案,但没有一个对我有用。
我们假设,例如,我想查找以www.
开头并以空格或?
结尾的网址。在这种情况下,我的意思是它以?
结尾,而不是它必然是与CGI相关的URL。
我正在尝试使用正则表达式
var r = /(^|[\s\?])(www\..+?(?=([\s]|\?|($))))/g;
我的示例使用:http://jsfiddle.net/DKNat/2/
如何在正则表达式中使用\?
来阻止/
之前包含?
的网址的结尾?
我无法在网址末尾使用DOT解决最后一次问题。 任何人都可以帮忙吗?
答案 0 :(得分:1)
在你的小提琴中试试这个:
var r = /(^|\??)(www\.[^\?]+)/g;
我在这里更新了你的小提琴:
更新
我看到你现在要做的事情。不幸的是,除了/
之外,你的字符串基本上是相同的,所以除非你希望你的正则表达式假设斜杠之后的任何地方?
表示CGI调用,否则就没有你可以做多少。但你可以试试这个:
var r = /(^|\??)(www\.[^\?]+\/[^\/]+\?[^\?]+|www\.[^\?]+)/g;
更新了小提琴:
更新2:确定要求后,这是我添加到小提琴10的最终RegExp:
var r = /(^|[\?\s])(www\.[^\? ]+\/[^\/ ]*\?[^\? ]+|www\.[^\? ]+)/g;