PHP regex获取字符串的中间


php regex to get middle of string

我将html页面解析为纯文本,以便查找和获取数值。在整个html混乱中,我需要找到一个像这样的字符串:

C) Debiti33.197.431,90I - Di finanziamento

我需要的数字33.197.431,90(这个数字将改变每一个html解析请求。

是否有任何正则表达式来实现这一点?例如:

STARTS WITH 'C) Debiti' ENDS WITH 'I - Di finanziamento' GETS the middle string that can be whatever.

每当我尝试,我得到空结果…不太了解正则表达式。你能帮帮我吗?非常感谢。

你可以试试下面的正则表达式,

^C') Debiti'K.*?(?=I - Di finanziamento$)

演示

PHP代码应该是,

<?php
$mystring = "C) Debiti33.197.431,90I - Di finanziamento";
$regex = '~^C') Debiti'K.*?(?=I - Di finanziamento$)~';
if (preg_match($regex, $mystring, $m)) {
    $yourmatch = $m[0]; 
    echo $yourmatch;
    }
?> //=> 33.197.431,90

应该可以。阅读"想偷懒吗?"三思而行。

(?<='bC') Debiti)['d.,]+(?=I - Di finanziamento'b)

这里是demo

示例代码:

$re = "/(?<=''bC'') Debiti)[''d.,]+(?=I - Di finanziamento''b)/i";
$str = "C) Debiti33.197.431,90I - Di finanziamento";
preg_match($re, $str, $matches);