Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java与Python正则表达式_Java_Python_Regex - Fatal编程技术网

Java与Python正则表达式

Java与Python正则表达式,java,python,regex,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)):

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

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

这类似于


find()
类似于Pythons
match()

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


因为您必须阅读文档并使用函数中对应的方法,而不是名称。开始使用Python时我也遇到了同样的问题,但现在我忘记了Java方法名。添加了^和$来定义开头和结尾必须是什么,这不会有什么不同。python代码会问这样一个问题:“给定正则表达式,此输入中是否存在匹配项”。您的java代码会问“匹配此输入my regex?”的问题,因此您的示例会问不同的问题,因此验证是不同的。(相当于“包含输入特定字符串”与“如果我们只是字符串搜索而不是正则表达式搜索,则输入等于特定字符串)
匹配
在Java中需要完整的字符串匹配,而Python中的
re.match
仅在字符串的开头锚定匹配。您正在查找
fullmatch
,我think@MadPhysicist是的,我想你是对的。我实际上是从Java的角度回答这个问题,指出
匹配
~
查找
,而不是
匹配
。然而,重读这个问题,我意识到OP可能在寻找进行
匹配的python方法。我会澄清的。