PHP preg_match разделить строку, разделенную знаком добавления
Я запутался насчет php
регулярное выражение, которое необходимо извлечь два запроса, разделенных +
предложения сознаком плюс из поискового запроса (которые могут включать цифры и / или специальные символы).
Может кто-нибудь пролить свет на это поведение?
$string = 'string1+String-2';
([a-zA-Z0-9-_]+[a-zA-Z0-9-_])
Array
(
[0] => string1
[1] => string1
)
3 ответа
Ты можешь сделать это так
/([\w-]+\+[\w-]+)/
неотбегший +
за квадратными скобками говорят: "выражение перед одним или несколькими разами" сбежавшего \+
означает чистый +
,
Альтернативный способ заключается в использовании explode()
$string = 'string1+String-2';
$parts=explode("+",$string);
print_r($parts);
с выходом:
Array
(
[0] => string1
[1] => String-2
)
Смотрите больше здесь:
Предполагая, что вы используете функцию preg_match:
Ваш образец ([a-zA-Z0-9-_]+[a-zA-Z0-9-_])
mMatching все, что является буквой или цифрой один или несколько раз, после чего следует буква или цифра.
Так что это совпадает на string
с последующим 1
, Вывод, который вы видите - это функция, выполняющая то, что говорит.
Если совпадения предоставлены, то он заполняется результатами поиска. $match [0] будет содержать текст, который соответствует полному шаблону, $match 1 будет содержать текст, который соответствует первому захваченному заключенному в скобки подшаблону, и так далее.
Я предполагаю, что вы, вероятно, хотели использовать preg_match_all, чтобы получить все подходящие шаблоны.