如何编写将数字和字符以任意顺序组合成字符串的正则表达式? 例如,如果我想读取某种发票编号,我有如下示例:
example 1: 32ah3af
example 2: 32ahPP-A2ah3af
example 3: 3A63af-3HHx3B-APe5y5-9OPiis
example 4: 3A63af 3HHx3B APe5y5 9OPiis
因此,每个“块”的长度在3到7个字符(字母或数字)之间,可以是任意顺序(字母可以是小写或大写)。每人。”“块”可以以字母或数字开头。
它可以有一个“块”或最多4个用' '
或-
分隔的块
我知道我可以制作像:\s
或\-
这样的分隔符,但我不知道如何制作这些具有(或不具有)分隔符的块
我试过这样的方法:
([0-9]?[A-z]?){3,7}
但它不起作用
你可以用
模式匹配:
^
字符串的开头[A-Za-z0-9]{3,7}
将小写或大写字符a-z或数字0-9匹配3-7次(?:
非捕获组[ -][A-Za-z0-9]{3,7}
匹配空格或{){0,3}
关闭非捕获组,重复0-3次,最多出现4次\b
防止部分匹配的单词边界Regex demo
注意
[A-z]
{a2}比[A-Za-z0-9]
只要您只想捕获/搜索发票ID,Hao Wu的建议就有效:
对于正则表达式(检查here)
如果你能放下剩下的部分,那么这就足够了
您可以使用
example 1
更精确地捕获整个字符串:参见here它是如何工作的。请注意捕获组是如何表示的
相关问题 更多 >
编程相关推荐