gpt4 book ai didi

javascript - 为什么 '\b\w+(?=ing)\b' 不能匹配 "I' m 在你跳舞时唱歌”

转载 作者:行者123 更新时间:2023-11-28 13:06:59 24 4
gpt4 key购买 nike

我有以下正则表达式

var reg = /\b\w+(?=ing)\b/g;
var str = "I'm singing while you're dancing";
str.match(reg) // ==>null

但是如果正则表达式是 /\b\w+(?=ing\b)/g 那么 str 可以匹配 'sing,danc'

为什么那个机器可以,但我之前的例子却不能?

最佳答案

因为 (?=ing) 是零长度匹配。因此,您正在尝试匹配一个或多个单词字符,后跟“ing”,同时后跟单词边界。

由于单词边界是从单词字符到非单词字符的变化,因此后跟“i”的单词字符后面不会跟有单词边界。

/\b\w+(?=ing\b)/g 与 'sing,danc' 中的 's' 匹配,因为 ',' 是一个非单词字符 - 因此有'g' 和 ',' 之间的单词边界。要找到正确的正则表达式,您需要更清楚为什么“sing,danc”不应该匹配。

关于javascript - 为什么 '\b\w+(?=ing)\b' 不能匹配 "I' m 在你跳舞时唱歌”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45751146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com