1

我有一个由 5 个字符组成的字符串,其中前两个字符应该在某个列表中,接下来的三个应该在另一个列表中。

我如何使用正则表达式验证它们?

例子:

  • 前两个字符的列表{VBNET, CSNET, HTML)}

  • 接下来三个字符的列表{BEGINNER, EXPERT, MEDIUM}

我的字符串将是: VBBEG, CSBEG, 等等。

我的正则表达式应该会发现输入字符串的前两个字符可以是 VB、CS、HT,其余的也应该是这样。

4

5 回答 5

1

这样的东西:

^(VB|CS|HT)(BEG|EXP|MED)$
于 2012-04-17T06:35:06.343 回答
1

这个食谱对我有用:

^(VB|CS|HT)(BEG|EXP|MED)$
于 2012-04-17T06:35:25.473 回答
1

以下表达式是否适用于更一般的情况(这样您就没有硬编码值):(^..)(.*$) - 返回第一组中的前两个字母,以及第二组中的剩余字母。

于 2012-04-17T06:47:29.003 回答
0

我想(VB|CS|HT)(BEG|EXP|MED)应该这样做。

于 2012-04-17T06:35:07.453 回答
0

如果你的字符串定义得这么好,你甚至不需要正则表达式——简单的字符串切片就可以了。

例如,在 Python 中,我们可能会说:

mystring = "HTEXP"

prefix = mystring[0:2]
suffix = mystring[2:5]

if (prefix in ['HT','CS','VB']) AND (suffix in ['BEG','MED','EXP']):
    pass # valid!
else:
    pass # not valid. :(

不要在基本字符串操作可以使用的地方使用正则表达式。

于 2012-04-17T07:07:08.740 回答