【问题标题】:javascript text match count and regex spaces not workjavascript文本匹配计数和正则表达式空格不起作用
【发布时间】:2014-07-20 20:03:37
【问题描述】:

我有一个问题。我正在为文本匹配续和排序匹配计数生成一个小 scipt。 click to see jsfiddle live example

我的示例脚本:

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

苹果香蕉YES匹配1

苹果YES匹配2

香蕉YES匹配3

猕猴桃YES匹配4

好吧,为什么返回 3 个匹配而不是 4 个匹配?还有其他例子吗?

【问题讨论】:

    标签: javascript regex match whitespace


    【解决方案1】:

    看看下面的演示

    Live DEMO

    用单词边界包围它,否则pineapple将被apple匹配

    \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
    

    Live DEMO

    apple banana and kiwi pineapple juice        3
    

    【讨论】:

    • 对不起,我不明白这场比赛的逻辑。请稍等,我会添加图片告诉您。
    • 谢谢。匹配一个词后再次明白了匹配在一起。
    • 在组中保留简短的单词。 \b(kiwi|apple|banana|apple banana|apple banana kiwi)\b 但这种情况永远不会被捕获,因为 apple 已经被捕获,因此 apple bananaapple banana kiwi 没有机会,因此没有使用额外的单词。在组中首先保留最大(更大)的单词以首先匹配它。休息取决于您的选择。
    猜你喜欢
    • 2023-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    相关资源
    最近更新 更多