Я пытаюсь разобрать текст с регулярным выражением php. Я написал образец соответствия со всем в строю. Я не хочу этого. Он должен соответствовать цели отдельно в той же строке.PHP Regex сопоставляет шаблон отдельно в той же строке
картина:
/\((?P<type>\w+)((,)*(?P<params>[\d\w\:]+))((,)*(?P<comment>.*))\)/u
целевая строка данных:
lorem ipsum dolor (photo,61) test (photo,62,some text) (video,63) sit amet etc
Результаты preg_match_all с флагом PREG_SET_ORDER:
array (size=1)
0 =>
array (size=11)
0 => string '(photo,61) test (photo,62,some text) (video,63)' (length=47)
'type' => string 'photo' (length=5)
1 => string 'photo' (length=5)
2 => string ',61' (length=3)
3 => string ',' (length=1)
'params' => string '61' (length=2)
4 => string '61' (length=2)
5 => string ') test (photo,62,some text) (video,63' (length=37)
6 => string '' (length=0)
'comment' => string ') test (photo,62,some text) (video,63' (length=37)
7 => string ') test (photo,62,some text) (video,63' (length=37)
Если целевые данные помещаются в отдельные строки и одинаковые результаты выполнения шаблона регулярного выражения; (Я хочу эти результаты, но без новых линий)
lorem ipsum dolor
(photo,61) test
(photo,62,some text)
(video,63) sit amet etc
array (size=3)
0 =>
array (size=11)
0 => string '(photo,61)' (length=10)
'type' => string 'photo' (length=5)
1 => string 'photo' (length=5)
2 => string ',61' (length=3)
3 => string ',' (length=1)
'params' => string '61' (length=2)
4 => string '61' (length=2)
5 => string '' (length=0)
6 => string '' (length=0)
'comment' => string '' (length=0)
7 => string '' (length=0)
1 =>
array (size=11)
0 => string '(photo,62,some text)' (length=20)
'type' => string 'photo' (length=5)
1 => string 'photo' (length=5)
2 => string ',62' (length=3)
3 => string ',' (length=1)
'params' => string '62' (length=2)
4 => string '62' (length=2)
5 => string ',some text' (length=10)
6 => string ',' (length=1)
'comment' => string 'some text' (length=9)
7 => string 'some text' (length=9)
2 =>
array (size=11)
0 => string '(video,63)' (length=10)
'type' => string 'video' (length=5)
1 => string 'video' (length=5)
2 => string ',63' (length=3)
3 => string ',' (length=1)
'params' => string '63' (length=2)
4 => string '63' (length=2)
5 => string '' (length=0)
6 => string '' (length=0)
'comment' => string '' (length=0)
7 => string '' (length=0)
Благодарим за помощь.
Я не знаю, что вы имеете в виду – aelor
Что вы имеете в виду без новых линий может вам пожалуйста, уточните –
@Uchiha Например, перейдите к новой строке с помощью клавиши Enter. Программно: \ r \ n. Этот символ доступен, он работает, но я хочу работать, когда это не так. –