繁体   English   中英

用于字母和数字的特定组合的正则表达式

[英]Regular expression for specific combination of alphabets and numbers

我正在尝试为以下类型的字符串创建正则表达式:

前缀(XI / YV / XD / YQ / XZ)的组合,仅数字,无“ Z”或“ Z”后缀。

例如, XD35Z应该通过但XD01HW不应该通过。

到目前为止,我尝试了以下操作:

  • @"XD\\d+Z?" XD35Z通过,但不幸的是,它也适用于XD01HW

  • @"XD\\d+$Z" XD01HW失败,这是我想要的,但XD35Z也失败

  • 我也尝试过@"XD\\d{1,}Z"? 但是没有用

我需要一个正则表达式,可以为两种类型的字符串提供适当的结果。

试试这个正则表达式:

^(XI|YV|XD|YQ|XZ){1}\d+Z{0,1}$

我使用大括号来明确限制每个字符/组的允许数量。 并且^$锚确保正则表达式仅匹配整行(字符串)。

此正则表达式检查分为逻辑部分

  • ^(XI|YV|XD|YQ|XZ){1}以正好允许的前缀之一开头
  • \\d+后跟一位或多位数字
  • Z{0,1}$以0至1 Z结尾

您正在滥用代表正则表达式中字符串结尾的$

它应该是: @"^XD\\d+Z?$" (注意,它出现在Regex的末尾,在Z?

遵循所需行为的正则表达式为:

^(XI|YV|XD|YQ|XZ)\d+Z?$

说明:

前缀的组合(XI / YV / XD / YQ / XZ)

^(XI|YV|XD|YQ|XZ)

仅数字

\d+

“ Z”或“ Z”后缀

Z?$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM