我不太擅长正则表达式,想知道是否有人可以帮助我为这个字符串写一个正则表达式:
INV-6001,INV-5067,INV-6795
INV-始终相同,然后后跟四位数(可能会增加到五位或六位或更多)。它们可以用逗号无限分隔。我怎么会写这样的东西?任何帮助将不胜感激,即使你可以指出我在一个发电机的方向,我可以粘贴到这一点,它会吐出的表达式为我。干杯
6fe3ivhb1#
这至少需要一个INV-部分。它不接受前导或尾随逗号。它只接受4位(或5位或6位)。(前面的语句假定它锚定到两端。)
INV-
INV-\d{4,6}(?:,INV-\d{4,6})*
或者,也许更可取(因为正则表达式可能会很快变得过于复杂!),就是 * 拆分 *“,”上的输入,然后确保每个部分都符合循环中的INV-\d{4,6}。如果无论如何都需要对数据做一些事情,那么部分正则表达式方法的“代码开销”就会变得最小。编码愉快。
INV-\d{4,6}
7cwmlq892#
(?<=,|^)([^,]*)(,\1)+(?=,|$)
Reference
mzsu5hc03#
我相信这个正则表达式可以解决你的问题:/[^,]+/g
/[^,]+/g
3条答案
按热度按时间6fe3ivhb1#
这至少需要一个
INV-
部分。它不接受前导或尾随逗号。它只接受4位(或5位或6位)。(前面的语句假定它锚定到两端。)或者,也许更可取(因为正则表达式可能会很快变得过于复杂!),就是 * 拆分 *“,”上的输入,然后确保每个部分都符合循环中的
INV-\d{4,6}
。如果无论如何都需要对数据做一些事情,那么部分正则表达式方法的“代码开销”就会变得最小。编码愉快。
7cwmlq892#
Reference
mzsu5hc03#
我相信这个正则表达式可以解决你的问题:
/[^,]+/g