Regex 对采购订单使用正则表达式

Regex 对采购订单使用正则表达式,regex,regex-lookarounds,Regex,Regex Lookarounds,我甚至不确定这是否可能 我被要求在文件名中匹配采购订单号。 他的要求如下: 我会说最少4个字符,没有最大限制。但是,在本节的某个地方必须有一个由3个连续字母组成的字符串(最少) 123ABC-比赛 A123ABC-匹配 ABC123-匹配 123XY67-不匹配 ABC1VJ6K-匹配 我能想到的最好的方法是[0-9A-Z]{4,};但是,如果基本上匹配任何4个字符,则可以使用以下模式: [A-Z0-9]*?[A-Z]{3}[A-Z0-9]+|[A-Z0-9]+?[A-Z]{3}[A-Z0-9]

我甚至不确定这是否可能

我被要求在文件名中匹配采购订单号。 他的要求如下:

我会说最少4个字符,没有最大限制。但是,在本节的某个地方必须有一个由3个连续字母组成的字符串(最少)

123ABC-比赛 A123ABC-匹配 ABC123-匹配 123XY67-不匹配 ABC1VJ6K-匹配


我能想到的最好的方法是[0-9A-Z]{4,};但是,如果基本上匹配任何4个字符,则可以使用以下模式:

[A-Z0-9]*?[A-Z]{3}[A-Z0-9]+|[A-Z0-9]+?[A-Z]{3}[A-Z0-9]*
另一种具有前瞻性的方法:

(?=[A-Z0-9]*[A-Z]{3})[A-Z0-9]{4,}
如果您的正则表达式引擎允许有条件:

([A-Z0-9]+?)?[A-Z]{3}(?(1)|[A-Z0-9])[A-Z0-9]*

谢谢卡西米尔。。。我用(?=[A-Z0-9]*[A-Z]{3}[A-Z0-9]{4,}