PHP提取(解析)字符串

PHP提取(解析)字符串,php,string,parsing,Php,String,Parsing,我使用正则表达式来检查字符串的特定格式 preg_match('/^\/answer ([1-9][0-9]*) (.{1,512})$/', $str, $hit, PREG_OFFSET_CAPTURE); $value1 = $hit[1][0]; $value2 = $hit[2][0]; 使用此正则表达式,发布的字符串需要具有以下格式: /答案nx n->整数>0 x->字符串,最多512个字符 现在,如何使用PHP以最简单的方式提取n和x? 例如: /回答56这是我的示例文本 应

我使用正则表达式来检查字符串的特定格式

preg_match('/^\/answer ([1-9][0-9]*) (.{1,512})$/', $str, $hit, PREG_OFFSET_CAPTURE);
$value1 = $hit[1][0];
$value2 = $hit[2][0];
使用此正则表达式,发布的字符串需要具有以下格式:

/答案nx

n->整数>0

x->字符串,最多512个字符

现在,如何使用PHP以最简单的方式提取n和x? 例如:

/回答56这是我的示例文本

应导致:

$value1 = 56;
$value2 = "this is my sample text";

运行这段简单的代码

<?php
$hit = [];
$str = '/answer 56 this is my sample text';
preg_match('/^\/answer ([1-9][0-9]*) (.{1,512})$/', $str, $hit, PREG_OFFSET_CAPTURE);
echo'<pre>',print_r($hit),'</pre>';
在这里:

$hit[0][0]是与您的模式匹配的完整字符串 $hit[1][0]是与模式[1-9][0-9]匹配的子字符串* $hit[2][0]是与模式匹配的子字符串。{1512} 所以


$hit中有什么?$hit是空的。不需要。$hit存储匹配项。您在preg_match之后打印了吗?无需使用preg_OFFSET_CAPTURE即可访问$hit[1]和$hit[2]。
$value1 = $hit[1][0];
$value2 = $hit[2][0];