我有这样的清单(只是一部分);
not match me
norme
16/02574/REMMAJ
20160721
17/00016/FULM
OUT/2017/1071
SMD/2017/0391
17/01090/FULM
2017/30597
17/03940/MAO
18/00076/FULM
CH/17/323
18/00840/OUTMEI
17/00902/EIAM
PL/2017/02671/MINFOT
我需要找到一般规则来匹配所有这些规则,但不匹配第一行(简单的单词),或者匹配\d
或\w
中的任何一个(如果不相互混合并使用斜杠)。允许使用\d{8}
之类的数字。
我不知道如何将适用于这3个组的MUST子句一起使用-都不能错过。
这些模式要么不完全匹配,要么匹配单词。尽可能使用简单的正则表达式。
\d{8}|(\w+|/+|\d+)
\d{8}|[\w/\d]+
编辑
这很有趣,但是一些未提供的示例与建议的表达式不匹配。例如:
7/2018/4127
NWB/18CM032
但是我知道为什么,这超出了范围。但是,为一组中的混合数字和字母添加功能,例如NWB/18CM032
会很好,并且不会破坏我认为的先前想法。
答案 0 :(得分:1)
您可以将大写字符或1-8位数字匹配1次或多次,并以正斜杠重复零次或多次:
^(?:[a-z0-9]+(?:/[a-z0-9]+)+|\d{8})$
这将匹配
^
字符串的开头(?:
非捕获组
[a-z0-9]+
匹配字符a-z或数字1+次(?:/[a-z0-9]+)+
匹配/
,后跟一个字符或数字1+次,并重复1+次。|
或\d{8}
匹配8位数字)
关闭群组$
字符串结尾在regex101上查看