我目前有这个正则表达式:
/(^| )[a-z]{5}-[a-z]{5}( |$)/i
字符串或空格的开头,5个字母,文字短划线,5个字母,空格或字符串结尾,不区分大小写。
这会找到一个如下所示的字符串:pejnd-zxdgn
我需要允许第一个字母只是一个数字而不是一个字母。
我该怎么写?
修改 澄清
应匹配:pejnd-zxdgn
或7ejnd-zxdgn
不应与7pejnd-zxdgn
或7ejn-zxdgn
或p7ejnd-zxdgn
答案 0 :(得分:3)
只需在[a-z]
部分之前添加数字模式即可。并将量词更改为{4}
:
/(^| )[0-9][a-z]{4}-[0-9][a-z]{4}( |$)/i
更新后,您只需要第一个字符为数字或字符。此外,您可以在开头和结尾使用单词边界 - \b
,如评论中所述。所以,将你的正则表达式改为:
/\b[a-z0-9][a-z]{4}-[a-z]{5}\b/i
答案 1 :(得分:-1)
使用'\ d'匹配单个数字。