php捕获组
我被困在用php捕捉一组preg_match 这是我的模式:php捕获组,php,preg-match,regex-group,Php,Preg Match,Regex Group,我被困在用php捕捉一组preg_match 这是我的模式: <ns2:uniqueIds>(.*)<\/ns2:uniqueIds> 这就是来源: <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header/><env:Body><ns2:ListResponse xmlns:ns2="http://censored"><
<ns2:uniqueIds>(.*)<\/ns2:uniqueIds>
这就是来源:
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header/><env:Body><ns2:ListResponse xmlns:ns2="http://censored"><ns2:uniqueIds>censored</ns2:uniqueIds><ns2:uniqueIds>censored</ns2:uniqueIds></ns2:ListResponse></env:Body></env:Envelope>
我遗漏了什么?您可能应该改用,以使调用Web服务以及作为PHP本机数据类型获取结果变得更容易
使用正则表达式解析XML或HTML通常是一个非常糟糕的主意。您可能应该改用,以使调用Web服务以及将结果作为PHP本机数据类型变得更容易
使用正则表达式来解析XML或HTML通常是一个非常糟糕的主意。虽然我同意上面的人告诉您不要使用正则表达式来解析XML,但我可以理解为什么您这样做只是为了获取一些价值。这就是我如何使它工作的: PHP解释器示例: 我对您的模式所做的唯一更改是使用了惰性量词*?而不仅仅是贪婪 资料来源: 关于懒惰重复的东西:
虽然我同意上面的人告诉您不要使用正则表达式来解析XML,但我可以理解为什么您这样做只是为了获取一些价值。这就是我如何使它工作的: PHP解释器示例: 我对您的模式所做的唯一更改是使用了惰性量词*?而不仅仅是贪婪 资料来源: 关于懒惰重复的东西:
每次有人用正则表达式解析XML,都会让baby Jesus哭泣。cletus用simplexml_load_string或调用的任何函数解析XML,都让我失败。努索普让我失望了。内置的php soap让我失望。每次有人用正则表达式解析XML时,它都会让baby Jesus哭泣。cletus用simplexml\u load\u string或任何调用该函数的方法解析XML时,我都失败了。努索普让我失望了。内置的php soap让我失望。我看不出还有其他选择,因为它不起作用。服务器有问题,我无法访问它。你能告诉我我做错了什么吗?因为它不起作用。服务器有问题,我无法访问它。你能告诉我我做错了什么吗?我同意他们的看法。但正如我所说,所有其他选择都让我失望。但是如果有人可以解析这个xml字符串并获得标记名“value”的值,我很乐意使用它。没有工作吗?哦,如果你对一个以上的唯一ID感兴趣,你应该使用preg_match_all。你为什么接受我的答案,然后。。。不接受吗?有些东西不管用?我同意他们的看法。但正如我所说,所有其他选择都让我失望。但是如果有人可以解析这个xml字符串并获得标记名“value”的值,我很乐意使用它。没有工作吗?哦,如果你对一个以上的唯一ID感兴趣,你应该使用preg_match_all。你为什么接受我的答案,然后。。。不接受吗?有什么不起作用的吗?
php > $s = '<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header/><env:Body><ns2:ListResponse xmlns:ns2="http://censored"><ns2:uniqueIds>censored</ns2:uniqueIds><ns2:uniqueIds>censored</ns2:uniqueIds></ns2:ListResponse></env:Body></env:Envelope>';
php > $p = '#<ns2:uniqueIds>(.*?)<\/ns2:uniqueIds>#i';
php > $a = array();
php > preg_match($p, $s, $a);
php > print_r($a);
Array
(
[0] => <ns2:uniqueIds>censored</ns2:uniqueIds>
[1] => censored
)