我有一个由 5 个字符组成的字符串,其中前两个字符应该在某个列表中,接下来的三个应该在另一个列表中。
我如何使用正则表达式验证它们?
例子:
前两个字符的列表
{VBNET, CSNET, HTML)}
接下来三个字符的列表
{BEGINNER, EXPERT, MEDIUM}
我的字符串将是: VBBEG
, CSBEG
, 等等。
我的正则表达式应该会发现输入字符串的前两个字符可以是 VB、CS、HT,其余的也应该是这样。
像这样的东西:
^(VB|CS|HT)(BEG|EXP|MED)$
这个食谱对我有用:
^(VB|CS|HT)(BEG|EXP|MED)$
以下表达式是否适用于更一般的情况(这样您就没有硬编码值):(^..)(.*$)
- 返回第一组中的前两个字母,以及第二组中的剩余字母。
我想(VB|CS|HT)(BEG|EXP|MED)
应该这样做。
如果你的字符串定义得这么好,你甚至不需要正则表达式——简单的字符串切片就可以了。
例如,在 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. :(
不要在基本字符串操作可以使用的地方使用正则表达式。