【发布时间】:2014-01-27 16:29:21
【问题描述】:
我需要找到一种限制数据输入的模式。我需要它来限制输入:
第一个字符必须是“S” 第二个字符必须是“S”、“T”、“W”、“X”或“V” 接下来的 6 必须是 0 - 9 的数字 最后 2 可以是任何大写字母或任何数字 0 - 9
所以我的研究使我把它放在一起.....
^[S][STWXV]/d{6}[A-Z0-9]{2}$
根据我的阅读:
[S] 仅表示大写字母 S
[STWXV] 表示此列表中的任何一个字母
/d{6} 表示 6 位数字
[A-Z0-9]{2} 表示任意 2 个字符 A - Z 或 0 - 9
我不是在字符串中的任何地方寻找匹配,我需要整个字符串来匹配这个模式。
那么为什么Regex.IsMatch("SX25536101", "^[S][STWXV]/d{6}[A-Z0-9]{2}$") 返回false?
我显然在某个地方出错了,但这是我第一次尝试正则表达式,这没有任何意义:(
【问题讨论】:
-
尝试找到一个能更好地描述您的问题的标题。考虑到这个标题将用于搜索引擎。
-
如此接近:尝试 \d 而不是 /d
-
反斜杠转义有趣的字符,如 \d。在许多语言中,正斜杠写在正则表达式的两侧,表示表达式是正则表达式。
-
@TimSchmelter 是的,你是对的,对不起,我会改变它,但不确定它是否会帮助其他人。对此很陌生,但希望随着时间的推移会提高我的贡献的质量。谢谢大家。