发票格式的正则表达式

标签 regex

我对正则表达式还很陌生,我正在尝试创建一个正则表达式来验证发票格式。

模式应该是: 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/

相关文章:

javascript - 无法匹配 JavaScript 中的字母数字

php - 复制 preg 替换为 javascript

Python 正则表达式 : Capture lookahead value (capturing text without consuming it)

Python 极其令人费解的正则表达式 unicode 行为

用于替换部分字符串(包括单引号 ('))的正则表达式

python - 查找字符串中下一次出现的位置

java - 使用 Jsoup 删除所有 HTML 但保留行

mysql - 正则表达式复制粘贴行并在每个行的末尾添加递增的数字

regex - R正则表达式

c# - 如何在 C# 中使用正则表达式测试字符串?