我有一长串的数字和描述,后跟一个逗号,我需要解析为3个字段,例如:
001 009 Intestinal Infectious Diseases,010 018 Tuberculosis,020 027 Zoonotic Bacterial Diseases,030 041 Other Bacterial Diseases,
我需要在每个逗号之前插入数据到我的数据库中的3个字段,开始,结束和描述。 2个例子是:
start: 001; end: 009; Description: Intestinal Infectious Diseases
start: 010; end: 018; Description: Tuberculosis
基本上,第一个空格结束起始数字,第二个空格结束结束数字,逗号结束描述。
我不确定如何将其写出来以便我可以存储每条记录......任何帮助都将受到赞赏。
答案 0 :(得分:0)
这应该这样做。
<?php
$string = '001 009 Intestinal Infectious Diseases,010 018 Tuberculosis,020 027 Zoonotic Bacterial Diseases,030 041 Other Bacterial Diseases,';
preg_match_all('~(\d+)\s(\d+)\s(.*?),~', $string, $matches);
for($i =0; $i < count($matches); $i++) {
echo 'First integer: ' . $matches[1][$i] .
'Second integer: ' . $matches[2][$i] .
'Description: ' . $matches[3][$i] . "\n";
}
这个正则表达式正在查找值之间的一个空格。如果它应该至少有一个空格字符,则添加+
。 \d+
至少是一个数字和连续数字,直到空格为止。 .*?
是第一个逗号之前的所有内容。
输出:
第一个整数:001秒整数:009描述:肠道传染病
第一个整数:010秒整数:018描述:结核病
第一个整数:020秒整数:027描述:人畜共患病细菌疾病
第一个整数:030秒整数:041描述:其他细菌性疾病
答案 1 :(得分:-1)
在逗号上使用explode首先将其分隔为包含数字和描述的数组。
然后,对于上面的每个字符串,再次使用explode,但是在空格上,限制为3.
对不起。在小型手机上打字,所以不容易给你编码例如。