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

Sta*_*eez 1 regex

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

鉴于:

字符串,用逗号分隔

" 1004, 1001 , 11004, 1002, 1003, 1004 ,  1005,ABC100,10041,ABC102, 1004 "
Run Code Online (Sandbox Code Playgroud)
  • 字符串可以包含数字/字符串/混合代码。
  • 节点之间以逗号分隔。
  • 逗号和代码之间可以有空格。

要检查的代码。例如:

"1004"
Run Code Online (Sandbox Code Playgroud)

目标:

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

我准备了一个丑陋的模式,但它可以工作:

(?:,|^)[ ]*1004[ ]*(?=,)|(?<=,)[ ]*1004[ ]*(?:,|$)|^[ ]*1004[ ]*$
Run Code Online (Sandbox Code Playgroud)

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

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

bob*_*ble 5

一个更简单的想法可以是通过使用否定的类和否定的环顾四周来检查,如果searchterm既不是在字符之前也不在其后,则不是not ,空白字符。

(?<![^\s,])1004(?![^\s,])
Run Code Online (Sandbox Code Playgroud)

在regex101上查看演示