这个需求在标签搜索中常要用到,假设数据库中有类似以下标签字段字符串:

红色,樱桃红色,红色,玫红色,红宝石,红色尖晶石,玫红色石榴石,红色

这里我们要找完全匹配于“红色”的标签,为了方便测试准确性,我们使“红色”出现在了最前面、中间、最后面。

“红色”两个字前面可能是“,”或字符串开头,后面可能是“,”或字符串结尾,起先我想到的就是方括号匹配“[,^]”和”[,$]”,然而这根本不管用(C#、Mongodb和Javascript中都无效),原因不明,后来琢磨了半天,只能采用这样的形式才能匹配成功:”(^|,)”和”(,|$)”

最终的表达式为:(^|,)s*红色s*(,|$)

我们来检验一下:

image

替换后的结果:

image

转载此文章时须注明转载自”SkyD(斯克迪亚)开发者博客“,并保留此文章的Url链接

作者信息

昵称
斯克迪亚

查看其所发布的所有文章

总积分
2440
注册时间
(2018年5月4日 19:06)

评论

目前还没有任何评论。

[切换到移动版页面]