我是正则表达式的新手,所以希望一些专家能够对我的问题打哈欠并给出一个简单的答案。我试图查找并替换以某个字母开头的单词,如果它们是复数,则保留它们的复数。
因此,例如,我想将“boy”一词替换为“band”,将“boys”替换为“bands”
text.replace( /\b(b)[\w]+(s?)\b/gi, "<span style=\"font-weight:bold\">$1and$2<\/span>" );
然而,$2 并没有提供可选的“s”。
提前致谢!
只需改变[\w]+
to [\w]+?
.
这改变了
来自“贪婪”(匹配尽可能多的字符,只有在被迫时才放弃字符)
意思是s?
不会匹配,因为[\w]+
已经为我们做到了。 (错误行为)
到“懒”(匹配尽可能少的字符,仅在绝对必要时添加到匹配项)
这使s?
一个匹配的机会。 (正确的行为)
顺便说一句:你可以改变[\w]+?
to \w+?
它的工作原理完全相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)