Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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
Php和python正则表达式的区别?_Php_Python_Regex - Fatal编程技术网

Php和python正则表达式的区别?

Php和python正则表达式的区别?,php,python,regex,Php,Python,Regex,我需要解析一个字符串“openurn:100000 LA:”并从中获取100000。 在python regexp(?上,当您在PHP中使用时,必须使用 从: 使用PCRE函数时,要求图案由分隔符括起。分隔符可以是任何非字母数字、非反斜杠、非空白字符 使用分隔符的原因是,您可以在最后一个分隔符之后添加,例如,使不区分大小写的匹配: #[a-z]#i // # is the delimiter. 回到你的问题: 在您的例子中,PHP认为括号()是您的分隔符(是的,开始括号和结束括号是有效的分

我需要解析一个字符串
“openurn:100000 LA:”
并从中获取100000。 在python regexp
(?上,当您在PHP中使用时,必须使用

从:

使用PCRE函数时,要求图案由分隔符括起。分隔符可以是任何非字母数字、非反斜杠、非空白字符

使用分隔符的原因是,您可以在最后一个分隔符之后添加,例如,使不区分大小写的匹配:

#[a-z]#i  // # is the delimiter.

回到你的问题:


在您的例子中,PHP认为括号
()
是您的分隔符(是的,开始括号和结束括号是有效的分隔符,请参见)和
?,除了上面提到的差异,我还发现了一个。

python中的re.match(r“\s”,“a b”)与preg_match(“/\s/”,“a b”),第一个在python中不返回匹配项,而第二个将查找空格符号。我不知道为什么在官方文档中,这很难理解,但这是事实。

请发布
preg_match()的确切php语法
Python的
match
方法在开始时自动锚定匹配,因此
re.match(r“\s”,“ab”)
相当于
preg\u match(“/^\s/”,“ab”)
。对于普通的旧的非锚定匹配,必须使用
搜索
方法:
re.search(r“\s”,“ab”)
#[a-z]#i  // # is the delimiter.
preg_match('%(?<=Open URN: )[0-9]+(?= LA:)%', 'Open URN: 100000 LA: ');