【发布时间】:2016-01-07 20:36:09
【问题描述】:
我正在尝试创建一个正则表达式来匹配一组单词。
例如,如果我匹配一组单词 - American Tea
那么在American Tea is awesome. Do you like American Tea? love WowAmerican Tea #American Tea这个字符串中,这里就只有2个匹配项了,
'美国茶很棒。你喜欢美国茶吗?喜欢 WowAmerican Tea #American Tea'
所以,我试图只对单词集进行完全匹配。
我尝试了一些方法,但没有得到正确的正则表达式:( 如果有人可以提供帮助或可以为我指明方向,那将非常有帮助。
检查一下
'American Tea lalalal qwqwqw American Tea sdsdsd #American Tea'.match(/(?:^|\s)(American Tea)(?=\s|$)/g)
这个结果是["American Tea", " American Tea"]
我不想要第二场比赛的空格,我希望比赛结果是["American Tea", "American Tea"]
(第二个美国茶前面没有空格)
【问题讨论】:
-
那么,你想要 3 场比赛还是 2 场比赛?你说的空间问题是什么?领先的空间?显示代码,你会更清楚你在做什么。一般来说,在JS中,当你需要同时使用lookbehind和lookahead时,你必须使用capturing。喜欢
(^|\s)(American Tea)(?=$|\s)这里。 -
我拥有的是 /(?:^|\s)(American Tea)(?=\s|$)/g 但它有空间问题
-
它没有任何问题。问题是您如何使用它。正则表达式在 JS 中很差(比 PHP、.NET、Java 等差),但该语言具有弥补它所需的一切。没有代码,这个问题就无法回答。
-
编辑了问题以添加更多细节
-
我知道我需要在我拥有的字符串中匹配的单词集。我在我的文本框荧光笔中使用它,以突出显示用户键入时单词的用法。因此,如果他键入像“美国茶”这样的单词集,我想匹配它并突出显示它。所以我不想强调#American Tea
标签: javascript regex