ここでは’です。PHPと正規表現をテストするためにI ’ mをサンプルします。それは$remove_test_name
ではないので、最後のケースTEST5で
<?php
$sample = array(
'1. test1 data- data ',
'12. data- data',
'key- value',
'2. test2 key2- value2',
'3. test3 data- data ',
'4. test4 data- data ',
'5. test5 data- data '
);
foreach ($sample as $string) {
$remove_test_name = '(?:test1|test2|test3|test4)';
preg_match("/(?:\d+\.)?\s?$remove_test_name?\s?(.*)-(.*)/",$string,$matches);
var_dump($matches);
echo $matches[1] . "-" . $matches[2];
}
?>
ここ
’の出力
array
0 => string '1. test1 data- data ' (length=20)
1 => string 'data' (length=4)
2 => string ' data ' (length=6)
data- data
array
0 => string '12. data- data' (length=14)
1 => string 'data' (length=4)
2 => string ' data' (length=5)
data- data
array
0 => string 'key- value' (length=10)
1 => string 'key' (length=3)
2 => string ' value' (length=6)
key- value
array
0 => string '2. test2 key2- value2' (length=21)
1 => string 'key2' (length=4)
2 => string ' value2' (length=7)
key2- value2
array
0 => string '3. test3 data- data ' (length=20)
1 => string 'data' (length=4)
2 => string ' data ' (length=6)
data- data
array
0 => string '4. test4 data- data ' (length=20)
1 => string 'data' (length=4)
2 => string ' data ' (length=6)
data- data
array
0 => string '5. test5 data- data ' (length=20)
1 => string 'test5 data' (length=10)
2 => string ' data ' (length=6)
test5 data- data
が表示されます。
入力形式について詳しく説明してください。「test1」、「test2」などがどこに表示されるのかは不明です。 –
test1またはtest2、またはtest3またはtest3が行番号の後に表示されます。一部の行番号にtest1またはtest2またはtest3またはtest4がありません – bruce
私はあなたのサンプルファイルのテキストが正しく表示されるようにあなたの質問を編集しました...確認してください。 – CanSpice