匹配冒号(不包括冒号)之间的正则表达式单词

时间:2015-03-11 21:42:45

标签: javascript regex

我有一个这样的字符串: "我去了:罗马:昨晚,现在我在:佛罗伦萨:"

我想用正则表达式来获取冒号之间的单词,排除它们,所以我想要这个输出
罗马佛罗伦萨 目前我写了这个:(。*?):\ g但它保留了冒号。

2 个答案:

答案 0 :(得分:2)

正则表达式将查找一个单词(在单词边界上),该单词将以前缀为前缀并以冒号:

为后缀

var input = "I went to :Rome: last night, now I'm in :Florence:";
var regex = /(?:\:)\b(\w*)\b(?=\:)/g
var arr = []
while (m = regex.exec(input)) arr.push(m[1]);
alert(arr)

<强>被修改

由于RegExp的JavaScript风格不支持很多功能,我建议将正则表达式更改为以下内容:

var input = "I went to :Rome: last night, now I'm in :Florence:";
var regex = /:([\w]+):/g
var replaced = input.replace(regex, "$1")

答案 1 :(得分:1)

您可以使用:

var arr = [],
    re = /:([^ :]+):/g,
    input = "I went to :Rome: last night, now I'm in :Florence:";

while ( m=re.exec(input) )
   arr.push(m[1]);

console.log(arr);
//=> ["Rome", "Florence"]