匹配 2 个数字正则表达式 PHP 排除一个组合
Matching 2 numbers Regex PHP excluding one combination
我有这个代码:
preg_match('/^COD([0-9][1-9]|0)$/', $input_line, $output_array);
我想匹配 CODXX,其中 XX 可以从 01 到 99。
这种方式匹配所有,除了COD10
COD20等...
如果我使用
preg_match('/^COD([0-9][0-9]|0)$/', $input_line, $output_array);
这种方式匹配所有,包括COD00,这是不允许的...
有什么解决办法吗?
提前致谢
只是对 00
的否定前瞻,然后重复两个数字:
/^COD(?:(?!00)[0-9]{2}|0)$/
https://regex101.com/r/wHL9Wg/1
这允许 COD0
,但是 - 如果这不是理想的,则模式不应包含 |0
交替:
/^COD(?!00)[0-9]{2}$/
您需要在正则表达式中单独指定前导 0 值,以便排除 COD00
:
preg_match('/^COD(0[1-9]|[1-9][0-9])$/', $input_line, $output_array);
如果您想要匹配COD0
,请在正则表达式中保留|0
:
preg_match('/^COD(0[1-9]|[1-9][0-9]|0)$/', $input_line, $output_array);
我有这个代码:
preg_match('/^COD([0-9][1-9]|0)$/', $input_line, $output_array);
我想匹配 CODXX,其中 XX 可以从 01 到 99。
这种方式匹配所有,除了COD10 COD20等...
如果我使用
preg_match('/^COD([0-9][0-9]|0)$/', $input_line, $output_array);
这种方式匹配所有,包括COD00,这是不允许的...
有什么解决办法吗?
提前致谢
只是对 00
的否定前瞻,然后重复两个数字:
/^COD(?:(?!00)[0-9]{2}|0)$/
https://regex101.com/r/wHL9Wg/1
这允许 COD0
,但是 - 如果这不是理想的,则模式不应包含 |0
交替:
/^COD(?!00)[0-9]{2}$/
您需要在正则表达式中单独指定前导 0 值,以便排除 COD00
:
preg_match('/^COD(0[1-9]|[1-9][0-9])$/', $input_line, $output_array);
如果您想要匹配COD0
,请在正则表达式中保留|0
:
preg_match('/^COD(0[1-9]|[1-9][0-9]|0)$/', $input_line, $output_array);