我有一个像这样的字符串:
1.1 Apoyar enlaplaneaciónyrealizacióndeproceduientientos para el mantenimiento delaintruraaciónyequipo automatizados。 (JEFE DE MANTENIMIENOMELEÓNICO,ELÉCTRICOEMINSTRUMENTACIÓN。)
2.1 Supervisar que losequiposelectrónicosenPaataciónesténtrabajando correctamente(JEFE DEMANTENIMIENOMELECTRÓNICO,ELÉCTRICOD INSTRUMENTACIÓN。)
如何在php中拆分它以获得数组或元组:
[0] => 1.1
[1] => Apoyar enlaplaneaciónyrealizacióndeproceduientientos para el mantenimiento de lainstrumentaciónyequipo automatizados。 (JEFE DEMANTENIMIENOMELECTRÓNICO,ELÉCTRICOEMINSTRUMENTACIÓN。)
[0] => 2.1
[1] => Supervisar que losequiposelectrónicosemediumaciónesténtrabajandocorrectamente(JEFE DEMANTENIMIENOMELECTRÓNICO,ELÉCTRICOEMINSTRUMENTACIÓN。)
或类似的内容:
[0] => 1.1
[1] => Apoyar enlaplaneació能realizacióndeproceduientientos para el mantenimiento de lainstrumentaciónyequipo automatizados。 (JEFE DEMANTENIMIENOMELECTRÓNICO,ELÉCTRICOEMINSTRUMENTACIÓN。)
[2] => 2.1
[3] => Supervisar que losequiposelectrónicosesacitoraciónesténtrabajandocorrectamente(JEFE) DEMANTENIMIENOMELECTRÓNICO,ELÉCTRICOEMINSTRUMENTACIÓN。)
我一直在尝试使用preg_split的正则表达式,如[[0-9]。] +,但我不知道它是否可行。 谢谢你的帮助。
答案 0 :(得分:2)
认识preg_split:
$testString = '1.1 That big array of 2.1 data which is separated by 2.3 some text';
$testChunks = preg_split('/\s*(\d+\.\d+)\s*/', $testString, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
print_r($testChunks);
这是一个codepad sample。 )
答案 1 :(得分:1)
您可以使用preg_split
将字符串拆分几乎任何模式。
// not tested
preg_split( '/[0-9]{1-99}\.[0-9]{1-99}/', $input );
答案 2 :(得分:1)
正如wrikken所评论的,preg_split
与PREG_DELIM_CAPTURE
应该这样做:
preg_split('/\s*(\d+\.\d+)\s*/', $subject, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
我还添加了PREG_SPLIT_NO_EMPTY
因为可能会出现空的(例如开头的空字符串),而这个标志会阻止它。
答案 3 :(得分:1)
快速而肮脏的preg_split:
$result = preg_split('/([0-9]+.[0-9]+)/',$text,-1,PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
$items = array();
for($i=0;$i<count($result);$i++) {
if ($i%2===0) {
$items[$result[$i]] = $result[$i+1];
$i++;
}
}
print_R($items);