0

试图形成一个正则表达式来匹配关键字的模式,我发现的模式就像

  • 删除:直到出现空格之前的所有单词和:直到)出现之后的所有单词。

在这个 jsfiddle中找到术语。

var newInput="keyword2:(content2) app keyword1:(content1) sos keyword:(content) das sad";

我正在寻找类似的输出

app,sos,das,sad 
4

2 回答 2

2
newInput.replace(/[^:\s]+:\([^)]*\)\s*/g, '');  // "app sos das sad"

解释

[^:\s]+: # ':'前面的任何字符(''和':'除外) "keyword1:'"
\([^)]*\) # 任何包含在 '(' ')' "(content2)" 中的字符
\s* # 尾随空格 " "

这将返回一个空格分隔的字符串。您必须自己修剪它并在空格处拆分(或替换它们)。

于 2012-09-07T05:51:05.427 回答
1

你可以试试:

var words = newInput.replace(/[^\s]+:\([^\)]+\)\s+/g, "").split(/\s+/);

Which will produce an array of the words as:

["app", "sos", "das", "sad"]

If you want a comma-separated string as shown in the question then:

var words = newInput.replace(/[^\s]+:\([^\)]+\)\s+/g, "").split(/\s+/).join(", ")
于 2012-09-07T05:54:49.697 回答