Regex 正则表达式以特定字母开头

Regex 正则表达式以特定字母开头,regex,Regex,我正在使用这个^[S-S][0-9]{4}$来验证我的字符串,但工作不正常。我的字符串必须采用字母S(大写或小写)后跟4位数字的形式,例如S1234。看起来它适用于S以上的字母,这意味着如果我输入w1234,它将验证正确,但如果我输入S以下的字母,如a1234,它将不验证。谢谢。你需要摆脱破折号: ^[Ss][0-9]{4}$ […]中的破折号表示字符范围。因此,regex中的S-S意味着“S和S之间的Unicode字符表中的每个字符”,由于这两个字符不相邻,最终会得到一组匹配的字符。[S-S

我正在使用这个
^[S-S][0-9]{4}$
来验证我的字符串,但工作不正常。我的字符串必须采用字母
S
(大写或小写)后跟4位数字的形式,例如
S1234
。看起来它适用于S以上的字母,这意味着如果我输入
w1234
,它将验证正确,但如果我输入S以下的字母,如
a1234
,它将不验证。谢谢。

你需要摆脱破折号:

^[Ss][0-9]{4}$

[…]
中的破折号表示字符范围。因此,regex中的
S-S
意味着“S和S之间的Unicode字符表中的每个字符”,由于这两个字符不相邻,最终会得到一组匹配的字符。

[S-S]
意味着大写字母S和小写字母S之间的所有字符的范围。请改为尝试
^[Ss][0-9]{4}$
。或者更好的是,
^s\d{4}$
带有不区分大小写的修饰符(
/i
,在许多语言中)。

不直接回答问题的详细内容,但谁会以问题的标题结束这个问题,并寻找regex的答案以找到匹配的单词,比如:
这是一个
区域 您应该使用以下正则表达式:

\bd[a-zA-Z]+
[a-zA-Z]
应替换为所需的预期尾部。
看看这个

把它改成^[S-Zs-z]我想这个问题是针对你编辑的。^[Ss][0-9]{4}$适合我。我只是希望第一个字母是S(小或大),听起来倒过来了
[S-S]
相当于
[STUVWXYZ\[\\\\\]^`abcdefghijklmnopqrs]
。我希望它能匹配
a
W
,但不能匹配
a
W
。感谢你的提醒,现在我明白了为什么它会匹配s上面的字母。这与问题无关。是的,编辑答案,不是直接针对问题细节,而是针对在谷歌上搜索并按标题登陆的人,这可能会有帮助,因为我就是这样的人。