有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    关键是,您不匹配完整的字符串,而只匹配“123”部分。相反^{}仅当完整字符串匹配时才产生true

    注意:正则表达式与描述不相似。它将开始的字符串与数字的大写字母匹配