如何使用正则表达式从tweet中提取url

时间:2012-03-24 17:25:52

标签: javascript regex twitter

好的,我正在javascript中执行以下代码行

RegExp('(http:\/\/t.co\/)[a-zA-Z0-9\-\.]{8}').exec(tcont);

其中tcont等于某些字符串,如'test tweet to http://t.co/GXmaUyNL'(由jquery获取的推文内容)。

然而,在上面的例子中,它正在返回'http://t.co/GXmaUyNL,http://t.co/'。

这是令人沮丧的,因为我希望网址没有结尾 - 包括逗号后。

为什么会出现这种想法?感谢

2 个答案:

答案 0 :(得分:2)

首先,摆脱模式中的parens - 它们是不必要的:

RegExp('http:\/\/t.co\/[a-zA-Z0-9\-\.]{8}').exec(tcont);

其次,正则表达式匹配返回一组匹配的组 - 您想要其中的第一项(整个匹配):

var match = RegExp('http:\/\/t.co\/[a-zA-Z0-9\-\.]{8}').exec(tcont);
if(match) {
    var result = match[0];
}

你有“最后一部分”的原因是因为你的结果是实际上一个数组 - 你在表达式中的parens导致了一个额外的匹配组(他们所在的部分) ),这将是match[1]

答案 1 :(得分:0)

试试这个:RegExp('http:\/\/t\.co\/[a-zA-Z0-9\-\.]{8}').exec(tcont);

相关问题