我对正则表达式还很陌生,我正在尝试创建一个正则表达式来验证发票格式。
模式应该是: JjYy(所有 4 个字符均合法),使用 0、2 或 4 次 例如根本没有 Y 有效,YY 有效,YYYY 有效,但 YYY 应该失败。 后面跟着一系列重复 3 到 10 次的 0。 整体不得超过 10 个字符。
示例: JyjY000000 有效(虽然很奇怪) YY000有效 000000 有效 jjj000 无效 jjjj0 无效
我从 here 学到了一些基础知识,但是我的正则表达式在不应该失败的时候失败了。有人可以帮忙改进吗?
到目前为止,我的正则表达式是:[JjYy]{0}|[JjYy]{2}|[JjYy]{4}[0]{3,10}
。
以下操作也失败:[JjYy]{0|2|4}[0]{3,10}
最佳答案
由于您需要总长度不超过 10 个字符,我认为您必须分别处理三种前缀:
0{3,10}|[JjYy]{2}0{3,8}|[JjYy]{4}0{3,6}
关于发票格式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1873158/