1

次のような文字列があります。

1.1 Apoyar en la planeacion y realización de procedimientos para el mantenimiento de la instrumentación yequipo automatizados. (JEFE DE MANTENIMIENO ELECTRÓNICO, ELÉCTRICO E INSTRUMENTACIÓN.)

2.1 Supervisar que los Equipos electronos e instrumentación estén trabajando correctamente (JEFE DE MANTENIMIENO ELECTRÓNICO, ELÉCTRICO E INSTRUMENTACIÓN.)

次のような配列またはタプルを取得するためにphpで分割するにはどうすればよいですか:

[0] => 1.1

[1]=> Apoyar en la planeacion y realización de procedimientos para el mantenimiento de la instrumentación yequipo automatizados. (JEFE DE MANTENIMIENO ELECTRÓNICO, ELÉCTRICO E INSTRUMENTACIÓN.)

[0]=>2.1

[1]=>Supervisar que los Equipos electronos e instrumentación estén trabajando correctamente (JEFE DE MANTENIMIENO ELECTRÓNICO, ELÉCTRICO E INSTRUMENTACIÓN.)

または次のようなもの:

[0]=>1.1

[1]=>Apoyar en la planeacion y realización de procedimientos para el mantenimiento de la instrumentación yequipo automatizados. (JEFE DE MANTENIMIENO ELECTRÓNICO, ELÉCTRICO E INSTRUMENTACIÓN.)

[2]=>2.1

[3]=>Supervisar que los Equipos electronos e instrumentación estén trabajando correctamente (JEFE DE MANTENIMIENO ELECTRÓNICO, ELÉCTRICO E INSTRUMENTACIÓN.)

[[0-9].]+ のような preg_split を使用した正規表現を試してみましたが、それが可能かどうかはわかりません。助けてくれてありがとう。

4

4 に答える 4

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

これはコードパッドのサンプルです。)

于 2012-06-19T22:32:27.113 に答える
1

preg_splitほぼすべてのパターンで文字列を分割するために使用できます。

// not tested
preg_split( '/[0-9]{1-99}\.[0-9]{1-99}/', $input );
于 2012-06-19T22:32:17.040 に答える
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また、空の文字列 (最初の空の文字列など) が発生する可能性があり、このフラグがそれを防ぐため、も追加しました。

デモ

于 2012-06-19T22:34:05.757 に答える
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);
于 2012-06-19T22:41:35.810 に答える