Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php正则表达式解析字符串以查找与模式匹配的子字符串_Php_Regex_String_Parsing - Fatal编程技术网

php正则表达式解析字符串以查找与模式匹配的子字符串

php正则表达式解析字符串以查找与模式匹配的子字符串,php,regex,string,parsing,Php,Regex,String,Parsing,我需要解析以下字符串来选择各种数据项,以便将它们放入数据对象中。目前我正在使用PHP,但我对字符串解析没有太多经验,所以我想知道是否有人能给我指出正确的方向 要分析的示例字符串: 有关列的说明,请参见“完整故事:带注释”。 =============================================================================== 数据库12-13-2 表2111C: 2111C未应用模块比例因子 ------------------------

我需要解析以下字符串来选择各种数据项,以便将它们放入数据对象中。目前我正在使用PHP,但我对字符串解析没有太多经验,所以我想知道是否有人能给我指出正确的方向

要分析的示例字符串:

有关列的说明,请参见“完整故事:带注释”。
===============================================================================
数据库12-13-2
表2111C:
2111C未应用模块比例因子
------------------------------------------------------------------------------------------------
权重| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 10|
------------------------------------------------------------------------------------------------
分母| 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 |%
------------------------------------------------------------------------------------------------
电子邮件名称| Ex1D | Ex2D | Ex3D | Ex4D | Ex5D | Ex6D | Ex7D | Ex8D | Ex9D | Ex10D |总计|已标记
================================================================================================
马哈茂德,Usm | 17 | 20 | 10 | 16 | 19 | 16 | 20 | 13 | 14 | 7 | 76 |
表22712L:
22712L最终动态比例因子(范围60%-65%)为1.00
------------------------------------------------------------
权重| 1 | 1 | 1 | 4|
------------------------------------------------------------
分母| 20 | 20 | 20 | 20%|%
------------------------------------------------------------
电子邮件名称| 14D | 16D | Ex7D | Ex9D |总计|已标记
============================================================
马哈茂德,Usm | 13 | 11c | 14 | 14 | 65c | 65
===============================================================================
查询结果结束
我试图将数据库ID、表ID等信息提取到我为此创建的PHP数据对象中,然后将权重/分母/标记列表提取到其中

我已经研究了PHP中的
preg.*
函数,但我仍然在努力了解如何以最佳方式实现这一点。我需要代码对任何未来可能需要查看/更新它的程序员都能理解。

其中$string是您的测试字符串:
where $string is your test string:

// Database ID
preg_match_all("(?<=Database )[\d-]+\b", $string, $matches);
foreach($matches[0] as $test){
   echo $test . "\n";
}

// Table(s) ID(s)
preg_match_all("(?<=Table )[\w]+(?=[:])", $string, $matches);
foreach($matches[0] as $test){
   echo $test . "\n";
}
//数据库ID
preg_match_all(“(?我建议您逐行工作。@vk我要提取例如,[“2111C”,“22712”],以便我可以将它们添加到数据对象中。还有“范围60%-65%”。以及标记,例如[13,11c,14,14,65c,65]。等等。