我写了一个正则表达式来匹配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()
:
尝试查找与模式匹配的输入序列的下一个子序列。