以下是我的字符串
的示例"{"id":128,"order":128,"active":"1","name":"\"
现在我需要得到" 128" - id参数。所以它的第一个值是":"和","。
我尝试过使用preg_match和不同的正则表达式,但我在正则表达式中表现不佳。也许有人会知道如何制作它?
$id = preg_match('/:(,*?)\,/s', $content, $matches);
答案 0 :(得分:1)
以下是使用正则表达式获取第一个:
之后的数字的示例代码:
$re = "/(?<=\\:)[0-9]+/";
$str = "\"{\"id\":128,\"order\":128,\"active\":\"1\",\"name\":\"\"";
preg_match($re, $str, $matches);
print $matches[0];
以下是TutorialsPoint上的示例程序。
关于此正则表达式(?<=\\:)[0-9]+
的一个小细节:幸运的是,它使用固定宽度look-behind that PHP supports。
答案 1 :(得分:0)
<?php
$txt='"{"id":128,"order":128,"active":"1","name":"\\"';
$re1='.*?'; # Non-greedy match on filler
$re2='(\\d+)'; # Integer Number 1
$re3='.*?'; # Non-greedy match on filler
$re4='(\\d+)'; # Integer Number 2
$re5='.*?'; # Non-greedy match on filler
$re6='(\\d+)'; # Integer Number 3
if ($c=preg_match_all ("/".$re1.$re2.$re3.$re4.$re5.$re6."/is",$txt, $matches))
{
$int1=$matches[1][0];
$int2=$matches[2][0];
$int3=$matches[3][0];
print "($int1) ($int2) ($int3) \n";
}
?>