nor*_*rry 3 regex replace preg-replace
我是正则表达式的新手,所以希望有些专家能够轻松回答我的问题.我试图找到并替换以某个字母开头的单词,如果它们是复数则保持复数.
所以,例如,我想用"乐队"代替"男孩"一词,用"乐队"代替"男孩"
text.replace( /\b(b)[\w]+(s?)\b/gi, "<span style=\"font-weight:bold\">$1and$2<\/span>" );
Run Code Online (Sandbox Code Playgroud)
但是,$ 2没有提供可选的"s".
提前谢谢!
只需[\w]+改为[\w]+?.
这种变化
来自"贪婪"(匹配尽可能多的角色,只有在被迫时才提供角色)
这意味着s?不匹配,因为[\w]+已经为我们做了.(错误的行为)
"懒惰"(匹配尽可能少的字符,如果绝对必要,只添加匹配)
,这提供s?了匹配的机会.(正确的行为)
顺便说一句:您可以更改[\w]+?为\w+?,它将完全相同.