我正在尝试匹配可能是a-z后跟特定字符的前3个字母。
为了测试我正在使用正则表达式在线测试器。 我认为这应该有效(没有成功):
^[a-z]{0,3}$[z]
我的测试字符串是abcz。
希望你能告诉我我做错了什么。
答案 0 :(得分:1)
如果您需要匹配整个字符串abcz
,请使用
/^[a-z]{0,3}z$/
^^
或 - 如果3个字母是强制性的:
/^[a-z]{3}z$/
请参阅regex demo。
模式中的$[z]
尝试在字符串锚点结束后匹配z
,这会使正则表达式失败始终。
<强>详情:
^
- 字符串开始[a-z]{0,3}
- 0到3个小写ASCII字母(需要3个字母,删除0,
)z
- z
$
- 字符串锚定结束。答案 1 :(得分:-1)
您过早获得行标识符
/^[a-z]{0,3}[z]$/m
You can see a working version here
您可以取消[]
周围的z
。方括号用于定义要匹配的范围或字符列表 - 因为您只匹配其中不需要的字符。
/^[a-z]{0,3}z$/m