使用正则表达式检查逗号分隔的代码字符串是否包含给定代码

时间:2018-05-14 20:51:39

标签: regex

我尝试使用正则表达式来解决我的任务。

假设:

逗号分隔的代码

" 1004, 1001 , 11004, 1002, 1003, 1004 ,  1005,ABC100,10041,ABC102, 1004 "
  • 该字符串可以包含数字/字符串/混合代码。
  • Сodes以逗号分隔。
  • 在逗号和代码之间可以有空格。

要检查的代码。例如:

"1004"

目标:

需要确保给定代码包含在源字符串中。

我准备了一个丑陋的模式,但它确实有效:

(?:,|^)[ ]*1004[ ]*(?=,)|(?<=,)[ ]*1004[ ]*(?:,|$)|^[ ]*1004[ ]*$

https://regex101.com/r/4IEi42/1

是否可以在模式中使用代码一次简化它? 谢谢!

1 个答案:

答案 0 :(得分:4)

如果搜索结果既不是前面也不是非,negated classes的字符,则可以使用lookarounds和否定white-space进行检查。

(?<![^\s,])1004(?![^\s,])

See demo at regex101