javascript-正则表达式

javascript-正则表达式,javascript,regex,Javascript,Regex,试图形成一个正则表达式来匹配关键字的模式,我发现的模式如下 删除:之前的所有单词直到出现空格,删除:之后的所有单词直到)出现 在中查找术语 我在寻找一个像这样的输出 app,sos,das,sad 解释 [^:\s]+: # any character (except ' ' and ':') in front of ':' "keyword1:'" \([^)]*\) # any character enclosed in '(' ')' "

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

  • 删除
    之前的所有单词直到出现空格,删除
    之后的所有单词直到
    出现
在中查找术语

我在寻找一个像这样的输出

app,sos,das,sad 
解释

[^:\s]+: # any character (except ' ' and ':') in front of ':' "keyword1:'" \([^)]*\) # any character enclosed in '(' ')' "(content2)" \s* # trailing spaces " " [^:\s]+:#在“:”关键字1:”前面的任何字符(除“”和“:”) \([^)]*\)#包含在“(“”)”中的任何字符(content2) \s*#尾随空格“” 这将返回一个以空格分隔的字符串。您必须自己修剪它并在空格处拆分(或替换空格)

解释

[^:\s]+: # any character (except ' ' and ':') in front of ':' "keyword1:'" \([^)]*\) # any character enclosed in '(' ')' "(content2)" \s* # trailing spaces " " [^:\s]+:#在“:”关键字1:”前面的任何字符(除“”和“:”) \([^)]*\)#包含在“(“”)”中的任何字符(content2) \s*#尾随空格“” 这将返回一个以空格分隔的字符串。您必须自己修剪并在空格处拆分(或替换空格)。

您可以尝试:

var words = newInput.replace(/[^\s]+:\([^\)]+\)\s+/g, "").split(/\s+/);
这将生成一个单词数组,如下所示:

["app", "sos", "das", "sad"]
如果您想要问题中所示的逗号分隔字符串,则:

var words = newInput.replace(/[^\s]+:\([^\)]+\)\s+/g, "").split(/\s+/).join(", ")
您可以尝试:

var words = newInput.replace(/[^\s]+:\([^\)]+\)\s+/g, "").split(/\s+/);
这将生成一个单词数组,如下所示:

["app", "sos", "das", "sad"]
如果您想要问题中所示的逗号分隔字符串,则:

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

它必须是正则表达式吗?您可以按空格分割并筛选以“关键字”开头的项目…它不必是术语关键字。。。它可能是随机词…它一定是正则表达式吗?您可以按空格分割并筛选以“关键字”开头的项目…它不必是术语关键字。。。它可能是随机词…检查输入“关键字2:(内容2)应用程序关键字1:(内容1)”;好的,对不起。我承认我发现你在问题中的描述有点混乱,你没有展示这样的例子,但我想你可以将正则表达式模式更改为
/[^\s]+:\([^\]+\)\s*/g
(即,将最后一个
+
更改为
*
,以匹配可选的空格),然后从结果中删除空格。检查输入“关键字2:(内容2)应用程序关键字1:(内容1)”;好的,对不起。我承认我发现你在问题中的描述有点混乱,你没有给出这样的例子,但我想你可以将正则表达式模式更改为
/[^\s]+:\([^\)]+\\s*/g
(即,将最后一个
+
更改为
*
,以匹配可选的空格),然后从结果中删除空白。检查输入“关键字2:(内容2)应用程序关键字1:(内容1)”;@Sam下次,在定义输入方面做得更好。对于正则表达式问题,答案只能和问题一样好。否。在你的问题中,“搜索词”总是出现在
关键字:(内容)
模式之后关键词2:(内容2)“和”应用程序“可以按任何顺序来,这就是我的意思。正则表达式是非常具体的,所以在陈述可能的输入时必须非常具体。否则你会强迫人们猜测,这绝不是一件好事。见修改后的答案顺便说一句,我的回答是99%的方式,即使你更具体的要求。如果您尝试过,您可以自己进行最后一次调整。检查输入“关键字2:(内容2)应用程序关键字1:(内容1)”@Sam下次,请更好地定义您的输入。对于正则表达式问题,答案只能和问题本身一样好。否。在你的问题中,“搜索词”总是出现在
关键字:(contents)
模式之后。“关键字2:(content2)”和“app”可以以任何顺序出现,这就是我的意思。正则表达式是非常具体的,所以在陈述可能的输入时必须非常具体。否则你会强迫人们猜测,这绝不是一件好事。见修改后的答案顺便说一句,我的回答是99%的方式,即使你更具体的要求。如果你试过的话,你可以自己做最后一次调整。