Я все еще изучаю PHP, и изменение строк - это то, что меня интересует. Я уже использовал preg_match для таких вещей, как проверка адреса электронной почты или просто поиск запросов.
Я только что пришел из этого сообщения Что не так в моем регулярном выражении? и мне стало интересно, почему функция preg_match_all выдает 2 строки, одну с удаленными символами, а другую с желаемым результатом.
Из того, что я понимаю об этой функции, следует, что она просматривает строку символ за символом, используя RegEx для оценки того, что с ней делать. Мог ли этот RegEx быть структурирован таким образом, чтобы обойти первую запись массива и просто получить желаемый результат?
и чтобы не ходить в другую тему
$str = 'text^name1^Jony~text^secondname1^Smith~text^email1^example-
free@wpdevelop.com~';
preg_match_all('/\^([^^]*?)\~/', $str, $newStr);
for($i=0;$i';
}
echo '
';
for($i=0;$i';
}
Это выведет
^Jony~
^Smith~
^example-free@wpdevelop.com~
Jony
Smith
example-free@wpdevelop.com
Мне интересно, была ли причина двух записей в массив из-за оригинального синтаксиса строки или это нормальная реакция функции на обработку. Извините, если это не должно быть здесь, но мне действительно интересно, как это работает.
спасибо, Brodie