试图形成一个正则表达式来匹配关键字的模式,我发现的模式就像
- 删除
:
直到出现空格之前的所有单词和:
直到)
出现之后的所有单词。
在这个 jsfiddle中找到术语。
var newInput="keyword2:(content2) app keyword1:(content1) sos keyword:(content) das sad";
我正在寻找类似的输出
app,sos,das,sad
试图形成一个正则表达式来匹配关键字的模式,我发现的模式就像
:
直到出现空格之前的所有单词和:
直到)
出现之后的所有单词。在这个 jsfiddle中找到术语。
var newInput="keyword2:(content2) app keyword1:(content1) sos keyword:(content) das sad";
我正在寻找类似的输出
app,sos,das,sad
newInput.replace(/[^:\s]+:\([^)]*\)\s*/g, ''); // "app sos das sad"
解释
[^:\s]+: # ':'前面的任何字符(''和':'除外) "keyword1:'" \([^)]*\) # 任何包含在 '(' ')' "(content2)" 中的字符 \s* # 尾随空格 " "
这将返回一个空格分隔的字符串。您必须自己修剪它并在空格处拆分(或替换它们)。
你可以试试:
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(", ")