0

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

假设,例如,我想查找www.以空格或 ?. 在这种情况下,我的意思是它以 结尾?,而不是一定是与 CGI 相关的 URL。

我正在尝试使用正则表达式

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

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

如何\?在正则表达式中使用以防止包含/before的 URL 结尾?

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

我无法在 url 末尾用 DOT 解决最后一个问题。任何身体都可以帮忙吗?

4

1 回答 1

1

在你的小提琴中试试这个:

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

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

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

更新:

我明白你现在想要做什么。不幸的是,除了 , 之外,你的两个字符串基本上是相同的/,所以除非你想让你的正则表达式假设?斜杠后面的任何地方都表示 CGI 调用,否则你无能为力。但你可以试试这个:

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

更新的小提琴:

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

更新 2:确定要求后,这是我添加到小提琴 10 的最终 RegExp:

var r = /(^|[\?\s])(www\.[^\? ]+\/[^\/ ]*\?[^\? ]+|www\.[^\? ]+)/g;
于 2013-08-22T13:56:52.723 回答