мне нужно получить некоторые данные для каждой строки большой строки в том виде:процесса строка строка за строкой и разделить содержание в переменные
- пустая строка должна игнорироваться
- Если нет
|
вообще -> $ содержание = $ значение - Если есть один
|
-> первая часть будет $ содержание, вторая часть (если существующее место) будет $ более - Если есть два
|
-> текст в средний будет $ content, последняя часть будет $ more
пример
|text|
text
another|text|example
have fun|
text|more text
||
|just some keywords (25-50%)|
результат
$content = 'text'
$content = 'text'
$content = 'text'; $more = 'example'; $pre = 'another'
$content = 'have fun'
$content = 'text'; $more = 'more text'
$content = just some keywords (25-50%)'
Так что я пытался решить эту вещь с взрываются и если/другое, но я не смог с этим:
$lines = explode(PHP_EOL, $content);
foreach ($lines as $key => $value) {
if ($line != "") {
$line_array = explode("|", $value);
if(count($line_array) == 3) {
// is '|anything|' or 'x|y|z'
}
else if (count($line_array) == 1) {
// anything else
}
}
}
REGEX
Моя попытка (.*)\|(.*)\|(.*)$
получает все строки, которая имеет два |
, но не другие линии ...
https://regex101.com/r/yW7oR3/5
Это очень похоже на ваш последний регулярное выражение вопрос. Попробуйте несколько регулярных выражений и опубликуйте свои попытки. – chris85
Я хотел бы создать регулярное выражение, но это слишком сложно для меня, так как строки имеют совсем другой формат (для меня). Вот почему я прошу о помощи. – user3848987