regex为什么([AZ]|[09])[\\\.azAZ09\]{0,}$不匹配Java中的abc123?
我正在尝试为以下规则创建正则表达式
正则表达式:([A-Z]|[0-9])[\\.a-zA-Z0-9_-]{0,}$
规则:字母、连字符和破折号的组合也必须包含大写字母或数字
当我尝试字符串abc123
时,它与JavaScript Regular Expression Tester上的预期匹配
但它在Java代码中失败了:
str.matches("([A-Z]|[0-9])[\\.a-zA-Z0-9_-]{0,}$")
有人知道原因吗?这和我的reg ex字符串有关吗
# 1 楼答案
关键是,您不匹配完整的字符串,而只匹配“123”部分。相反^{} 仅当完整字符串匹配时才产生true
注意:正则表达式与描述不相似。它将开始的字符串与数字的大写字母匹配