Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript文本匹配计数和正则表达式空格不起作用_Javascript_Regex_Match_Whitespace - Fatal编程技术网

javascript文本匹配计数和正则表达式空格不起作用

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

我有个问题。我正在生成一个用于文本匹配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 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