Javascript 使用JS正则表达式匹配所有表达式

Javascript 使用JS正则表达式匹配所有表达式,javascript,regex,string,Javascript,Regex,String,我需要将所有表达式(例如:大笑(LoL))与2个或3个以上的单词匹配。我的正则表达式仅适用于具有3个字符长表达式的文本。如何使正则表达式非常通用(不将长度指定为3),以便即使表达式的长度为任意长度,也可以选择表达式 共享的链接提供了它的概述 最后一句话 通过受激辐射(激光)进行光放大 绿色技能发展计划(GSDP)不使用以下正则表达式选择 \b(\w)[\w']*[^a-zA-Z()]* (\w)[\w']*[^a-zA-Z()]* (\w)[\w']*[^a-zA-Z()]* \(\1\2\3\

我需要将所有表达式(例如:大笑(LoL))与2个或3个以上的单词匹配。我的正则表达式仅适用于具有3个字符长表达式的文本。如何使正则表达式非常通用(不将长度指定为3),以便即使表达式的长度为任意长度,也可以选择表达式

共享的链接提供了它的概述

最后一句话

通过受激辐射(激光)进行光放大 绿色技能发展计划(GSDP)不使用以下正则表达式选择

\b(\w)[\w']*[^a-zA-Z()]* (\w)[\w']*[^a-zA-Z()]* (\w)[\w']*[^a-zA-Z()]* \(\1\2\3\)

\b(?:\w[\w']* [^a-zA-Z]*){3} ?\([A-Z]{3}\)

您可以尝试以下方法:

/\b(\w)[-'\w]*(?:[-'\w]*){1,}\(\1[A-Z]{1,}\)/gi

更新

正如所述,这个邋遢的正则表达式还可以搭配
带些饮料(啤酒)
带些东西放在烤架上(烧烤)
。我认为在进行正则表达式匹配之后,可以使用适当的JavaScript代码过滤这些情况。可能在
带一些饮料(啤酒)
的情况下,我们可以使用
(啤酒)
没有大写字母的事实来检测它。如果
带上要放在烤架上的东西(BBQ)
,我们可以利用第二个
B
中的
Q
没有匹配的首字母这一事实来检测它


更新2

当我们使用上面的正则表达式匹配以下字符串时:

我们需要使用自然语言处理(NLP)技术。

它符合“
需要使用来自自然语言处理(NLP)
”的技术,而不是“
自然语言处理(NLP)
”。这些问题也应该解决


更新3

下面的正则表达式匹配长度为2到5的首字母缩略词,并且没有上述问题。我认为它可以很容易地扩展,以支持您想要的更长长度:

/\b(\w)\S*(?:(?:by | of)的)(\w)\S*(?:(?:by | of)的)(\w)\S*(?:(?:by | of)的)(\w)\S*(?:(?:by | of的)(\w)\S*)?)*\(\1\2\3\4\5\)/gi

我在中间放置了一些特殊字符

Regex用于模式匹配,因此如果您要请求帮助构建Regex,您首先需要确定您要查找的模式的定义。更新您的问题,以包含您称之为“缩写”的模式的简单英语定义。然后有人会帮你把它翻译成正则表达式。请仔细理解这个问题。上面的“可能”不是这里的一个地方。如果你有信心,那么我很感谢你。[嗨!我想你可以在这里找到答案]()请通过提供所有有效和无效的匹配来清楚地解释问题非常粗糙(我相信有些人会想出更好的方法),但是一些类似的方法可以让你开始。老实说,我不确定我是否会推荐
regex
。它认为
带些饮料(啤酒)
是一个缩写词。OP的现有解决方案没有。最常见的mis'~@-将不选择take(MCM)。你知道怎么克服吗this@CodeGuy我更新了我的答案,使之与MCM正确匹配……然后,OP还说,受激辐射(激光)
应被视为首字母缩略词。shrug@ikegami什么意思?它与<代码>光放大(受激辐射(激光)< < /代码> >匹配。您可以考虑将<代码> { 2,} /代码>改为<代码> { 1,},因为您还希望匹配2个单词缩写。我更新了我的答案,并将这些更改应用于我答案中的正则表达式,以便它能够匹配类似于
post-script(PS)
:)
\b(\w)[-'\w]* (?:[-`."?,~=@!/\\|+:;%°*#£&^€$¢¥§'\w]* ){2,}\(\1[A-Z]{2,}\)