javascript文本匹配计数和正则表达式空格不起作用
我有个问题。我正在生成一个用于文本匹配cont和排序匹配计数的小scipt。 我的示例脚本:javascript文本匹配计数和正则表达式空格不起作用,javascript,regex,match,whitespace,Javascript,Regex,Match,Whitespace,我有个问题。我正在生成一个用于文本匹配cont和排序匹配计数的小scipt。 我的示例脚本: var testtext1 = "apple banana and kiwi pineapple juice"; var testtext2 = "need apple banana pineapple milkshake"; var testtext3 = "apple pineapple lower prices"; var testtext4 = "only apple banana kiwi
var testtext1 = "apple banana and kiwi pineapple juice";
var testtext2 = "need apple banana pineapple milkshake";
var testtext3 = "apple pineapple lower prices";
var testtext4 = "only apple banana kiwi pineapple lovers";
var testtext5 = "kiwi pineapple apple banana sales";
alert(testtext1.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //3 matches
alert(testtext2.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //2 m
alert(testtext3.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //2 m
alert(testtext4.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //2 m
alert(testtext5.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //3 matches
text1=只有3个匹配项为什么?手表正则表达式
苹果香蕉猕猴桃或苹果香蕉或苹果香蕉或猕猴桃
苹果香蕉猕猴桃不匹配0
苹果香蕉是匹配1
应用程序是匹配2
香蕉是比赛3
猕猴桃是比赛4
好的,为什么返回3个匹配而不是4个匹配??还有其他例子吗
请看下面的演示 用单词边界将其包围,否则
菠萝
将与苹果
\b(apple banana kiwi|apple banana|apple|banana|kiwi)\b
火柴
apple banana and kiwi pineapple juice 2
need apple banana pineapple milkshake 1
apple pineapple lower prices 1
only apple banana kiwi pineapple lovers 1
kiwi pineapple apple banana sales 2
编辑 如果你改变顺序,结果会有所不同
\b(apple|banana|apple banana kiwi|apple banana|kiwi)\b
对不起,我不明白这场比赛的逻辑。请稍等,我将添加一张图片告诉您。谢谢。在匹配一个单词后,再次理解该匹配词。在小组中首先保留短单词<代码>\b(猕猴桃|苹果|香蕉|苹果香蕉|苹果香蕉猕猴桃)但这种情况永远不会被发现,因为苹果已经被捕获,因此苹果香蕉和苹果香蕉猕猴桃没有机会出现,因此没有多余的单词。在组中首先保留最大(较大)的单词,以便首先匹配它。休息取决于你的选择。
apple banana and kiwi pineapple juice 3