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];