Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我目前有这个正则表达式:
/(^| )[a-z]{5}-[a-z]{5}( |$)/i
字符串或空格开头,5 个字母,文字破折号,5 个字母,空格或字符串结尾,不区分大小写。
这会找到一个如下所示的字符串:pejnd-zxdgn
pejnd-zxdgn
我需要只允许第一个字母是数字而不是字母。
我怎么写这个?
编辑: 澄清
应该匹配:pejnd-zxdgn或7ejnd-zxdgn
7ejnd-zxdgn
不应匹配7pejnd-zxdgnor 7ejn-zxdgnor p7ejnd-zxdgn
7pejnd-zxdgn
7ejn-zxdgn
只需在[a-z]零件前添加数字模式即可。并将量词更改为{4}:
[a-z]
{4}
/(^| )[0-9][a-z]{4}-[0-9][a-z]{4}( |$)/i
更新后,您只希望第一个字符是数字或字符。\b此外,您可以在开头和结尾使用单词边界,如评论中所述。因此,将您的正则表达式更改为:
\b
/\b[a-z0-9][a-z]{4}-[a-z]{5}\b/i
使用 '\d' 匹配单个数字。