正则表达式匹配逗号分隔值INV-x,INV-y,INV-Z等?

时间:2012-03-11 23:08:58

标签: regex

我对正则表达式不是很好,并且想知道是否有人可以帮我写这个字符串的正则表达式:

INV-6001,INV-5067,INV-6795

INV-始终相同,然后是四位数(可能会增加到五位或六位或更多位)。

它们可以用逗号无限分隔。

我怎么写这样的东西?

任何帮助都会非常感激,即使你可以指向我可以粘贴它的生成器的方向,它会为我吐出表达式。

干杯

3 个答案:

答案 0 :(得分:0)

(?<=,|^)([^,]*)(,\1)+(?=,|$)

Reference

答案 1 :(得分:0)

正则表达式:/[^,]+/g

演示:http://refiddle.com/1s4

答案 2 :(得分:0)

这需要至少一个INV-部分。它不接受前导或尾随逗号。它只接受4(或5或6)个数字。 (之前的陈述假设它固定在两端。)

INV-\d{4,6}(?:,INV-\d{4,6})*

或者,也许更可取(因为正则表达式可能会变得过于复杂!),就是拆分“,”上的输入,然后确保每个部分符合{{1}在一个循环中。如果需要对数据进行某些操作,则部分正则表达式方法的“代码开销”变得很小。

快乐的编码。