Java vs Python 正则表达式



我写了一个正则表达式来匹配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");
        }

输出什么都没有

来自matches的文档:

尝试将整个区域与模式匹配。

这类似于 Python fullmatch()


find()类似于Pythons match()

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

最新更新