-1

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

输出什么都不是

4

1 回答 1

1

来自以下文档matches

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

这类似于Pythonfullmatch()


find()类似于 Pythons match()

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

于 2019-06-11T12:18:30.490 回答