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

Match with regular expressions words between colon (excluding colon)

本文关键字:正则表达式 单词匹 不包括 之间      更新时间:2023-09-26

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

我想用正则表达式获取冒号之间的单词,排除它们,所以我想要这个输出
罗马 佛罗伦萨
在我写这篇文章的那一刻:(.*?):''g,但它保留冒号。

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

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)

编辑

由于正则表达式

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

var input = "I went to :Rome: last night, now I'm in :Florence:";
var regex = /:(['w]+):/g
var replaced = input.replace(regex, "$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"]