我正在尝试为以下规则创建一个正则表达式。
RegEx: ([A-Z]|[0-9])[\.a-zA-Z0-9_-]{0,}$
规则:字母,连字符和破折号的组合,还必须包含大写字母或数字。
当我尝试字符串abc123
时,它与JavaScript正则表达式测试器上的预期匹配。
但是在Java代码中失败了:
str.matches("([A-Z]|[0-9])[\.a-zA-Z0-9_-]{0,}$")
有人知道原因吗?这和我的正则字符串有关吗?
关键是您不匹配完整的字符串,而只匹配部分"123"。相反,String.matches
仅在完整字符串匹配时才返回true。
注意:您的正则表达式与您的描述不相似。它匹配以大写字母或数字开头的字符串。