我有以下preg_match;
preg_match('=^\d?[a-z]{1,2}\d{1,4}[a-z]{1,3}$=i', $mystring);
这很好用,但我有一些带有/ H或其他角色的mystrings。它们也可能以-1或-15或其他数字结尾。
Mystrings看起来像W0DLK,WA0DLK,W0DLK-1,W0DLK-20,W0DLK / H,W0DLK / M
如何添加到现有的preg_match中以忽略' - '之后的任何内容。破折号或' /'削减?在我的使用中,首先对该值进行子串化是很困难的。
答案 0 :(得分:0)
您可以在表达式的末尾使用可选的捕获组,以便允许使用连字符/短划线和字符。
^\d?[a-z]{1,2}\d{1,4}[a-z]{1,3}(?:[-/][a-z\d]+)?$
这允许-
或/
,然后是字母和/或数字。更严格的正则表达式将是:
^\d?[a-z]{1,2}\d{1,4}[a-z]{1,3}(?:-\d+|/[a-z]+)?$
这允许字符串以-
和数字,或/
和字母结尾。