Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在寻找数字和字母组合的 perl 正则表达式,允许空格和“/”和“-”字符作为可能的分隔符。
基本上,我希望它匹配包含字母和数字和/或分隔符组合的表达式,如下所示:
ATG567A ATG56-7A ATG56/7A ATG56 7A
但不是这个:
ATG-A <---- 仅限字母和/或分隔符 567/7 <---- 仅限数字和/或分隔符
如果您尝试验证字符串,则将其作为多项检查更简单。
m{^[A-Za-z0-9 /-]*\z} && /[A-Za-z]/ && /[0-9]/
这些可以组合成一种模式,但我建议不要这样做。
m{^(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9 /-]*\z}s
另一方面,如果您尝试从字符串中提取,则需要以下内容:
m{ [ /-]*+ (?: [A-Za-z] [A-Za-z /-]*+ [0-9] | [0-9] [0-9 /-]*+ [A-Za-z] ) [A-Za-z0-9 /-]*+ }x