Разрыв автоматическая линия с regex
у меня есть следующая строка: $var = "Saudi Arabia U23 x South Korea U23";
я хочу, чтобы разделить имена, которые разделены "x"
, я сделал следующим образом:
$arr = preg_split('/[v|x]/', $var);
Использовал "V e X"
потому что иногда строка может пришел с "v" разделяя имена, а не X, проблема в том, что если "x" или "v", включенное в название, не быть "x" или "v" разделения, он будет отрезать тоже, но я просто хочу, чтобы ты отличаешь имена с разделителями - " x "
, " v "
.
Как бы сделать это в regex?
2 answers
Просто поставить пробелы, а затем + за пределами скобки:
$arr = preg_split('/ +[v|x] +/', $var);
Такое регулярное выражение будет удалить символы " x ", " v " и те, которые имеют более одного места, как " x " и " v "
Такое регулярное выражение решает проблему, она ищет одного или более пробелов, за которым следует v
и x
следует один или несколько пробелов.
$str = 'abc X edfxct';
$arr = preg_split('/\s+v|x\s+/i', $str);
echo "<pre>";
print_r($arr);
Выход:
Array
(
[0] => abc
[1] => edfxct
)