如何在CSV字符串中匹配单个数字7、8、9
在CSV字符串中精准匹配独立的单个数字7、8、9
需求说明
- 需匹配CSV字符串中作为独立值存在的单个数字7、8、9
- 需排除非单个纯数字的情况:如77、17、9s等均不能被匹配
- 兼容场景:字符串可为空,也可仅包含单个无逗号分隔的值
原有问题
最初使用的正则表达式 (?<=,)[789](?=,) 仅能匹配位于两个逗号之间的目标值,无法匹配处于字符串首尾位置的目标值;尝试修改正则后又会误匹配无效内容,该问题曾被标记为重复,参考相关帖子后仍未解决。
有效解决方案
最终得到两个可满足需求的正则表达式:
(?<=^|,)[789](?=,|$)(由@Bohemian提供)(?:(?<=^)|(?<=,))[789](?:(?=,)|(?=$))(由@Ouroborus在评论中提供)
示例字符串
示例1:
7,8,9
示例2:15,7,98,0,null,Bad Data,9s,7,4,8
内容的提问来源于stack exchange,提问作者Code Novice
相关产品推荐
相关产品推荐

