Java vs Python正则表达式

时间:2019-06-11 12:15:04

标签: java python regex

我写了一个正则表达式来匹配范围在0-255之间的字符串。

我的正则表达式为([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])

我知道我的正则表达式在技术上是不正确的,因为匹配字符串的第一个字符匹配[0-9]后,它将为真 因此即使是“ 1234”也会匹配。

现在我用python编写它。.

a="2514"
>>> if(re.match("([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",a)):
...     print("yes")

输出=是

但是当我用Java编写它..

String s="2514";
        if(s.matches("([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"))
        {
            System.out.println("yes");
        }

输出为空

1 个答案:

答案 0 :(得分:1)

来自the docs of matches

  

尝试根据图案匹配整个区域。

这类似于Python fullmatch()


find()与Python match()类似:

  

尝试查找与模式匹配的输入序列的下一个子序列。