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: ');