Я пытаюсь извлечь текст следующим образом:PHP извлечение нескольких разделов текста из строки
$subname = "subarray({value=subarray({0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48}, EXCEL*48, 1)";
preg_match('#\{(.*?)\}#',$subname, $match, PREG_OFFSET_CAPTURE);
print_r($match[1][1]);
$matchs = substr($subname, 0, $match[1][1]);
print_r($matchs);
Я хотел бы получить следующий текст от $ подимени
- 0,5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48
- EXCEL
- * 4 8
Я борюсь со вторым битом (получая слово EXCEL). Интересно, можно ли получить preg_match, чтобы дать мне остальную часть строки?
Захват его с [ ' '# \ {(*.?)}, \ S * (\ р {L} +) (\ * \ D +) #''] (https: // regex101. com/r/w08NtY/1) –
Да, возможно, просто измените '# \ {(. *?) \} #' на '# \ {(. *?), (EXCEL) (\ * 48) \} # '. Теперь, если слово может быть чем-то другим, пожалуйста, опишите свой шаблон, что может быть там и покажите, что вы пытались захватить недостающую часть. – sidyll