Php 从正则表达式获取多个结果
我想从正则表达式中得到多个结果,但它不能正常工作 测试字符串:Php 从正则表达式获取多个结果,php,regex,Php,Regex,我想从正则表达式中得到多个结果,但它不能正常工作 测试字符串: <div class="row-fluid pybar-row"> <span class="pybar-label text-left"> <span class="">Male</span> </span> <span class="pybar-bars"> <div class="row-fluid"&
<div class="row-fluid pybar-row">
<span class="pybar-label text-left">
<span class="">Male</span>
</span>
<span class="pybar-bars">
<div class="row-fluid">
<span class="pybar-bar pybar-l" style="">
<span class="pybar-bg">
<span style="width:100%"> </span>
</span>
</span>
<span class="pybar-bar pybar-r">
<span class="pybar-bg">
<span style="width:78%;"> </span>
</span>
</span>
</div>
</div>
男性
我只想获得style=“width:X%的数量
我使用了这个正则表达式:
$re = "/<span class=\"pybar-bg\">.*?width:(.*?)%/s";
$re=“/.*”宽度:(.*)%/s”;
但它只返回第一个数字。我想要字符串中的所有数字,并拥有这个类。您的正则表达式工作正常。使用
preg\u match\u all
提取所有匹配项:
$s = <<<HTML
<div class="row-fluid pybar-row">
<span class="pybar-label text-left">
<span class="">Male</span>
</span>
<span class="pybar-bars">
<div class="row-fluid">
<span class="pybar-bar pybar-l" style="">
<span class="pybar-bg">
<span style="width:100%"> </span>
</span>
</span>
<span class="pybar-bar pybar-r">
<span class="pybar-bg">
<span style="width:78%;"> </span>
</span>
</span>
</div>
</div>
HTML;
$re = "/<span class=\"pybar-bg\">.*?width:(.*?)%/s";
if( preg_match_all( $re, $s, $matches ) ) {
var_dump( $matches[1] );
}
您的正则表达式工作正常。使用
preg\u match\u all
提取所有匹配项:
$s = <<<HTML
<div class="row-fluid pybar-row">
<span class="pybar-label text-left">
<span class="">Male</span>
</span>
<span class="pybar-bars">
<div class="row-fluid">
<span class="pybar-bar pybar-l" style="">
<span class="pybar-bg">
<span style="width:100%"> </span>
</span>
</span>
<span class="pybar-bar pybar-r">
<span class="pybar-bg">
<span style="width:78%;"> </span>
</span>
</span>
</div>
</div>
HTML;
$re = "/<span class=\"pybar-bg\">.*?width:(.*?)%/s";
if( preg_match_all( $re, $s, $matches ) ) {
var_dump( $matches[1] );
}
你的正则表达式将在第一场比赛中返回。要匹配所有值,请使用
g
modifier(全局匹配)
您的正则表达式将在第一次匹配时返回。要匹配所有值,请使用
g
modifier(全局匹配)
这不是这个问题的正确答案:它被标记为
php
,其中不存在“g”修饰符。相反,必须使用preg\u match\u all()
,正如@Nicolai的回答所说。这不是这个问题的正确答案:它被标记为php
,其中不存在“g”修饰符。相反,必须使用preg\u match\u all()
,正如@Nicolai的回答所说的。再一次。小马。再一次。
$re = "/<span class=\"pybar-bg\">.*?width:(.*?)%/sg";
100
78