Разрыв автоматическая линия с 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
Author: Cassiano José, 2016-01-07

2 answers

Просто поставить пробелы, а затем + за пределами скобки:

$arr = preg_split('/ +[v|x] +/', $var);

Такое регулярное выражение будет удалить символы " x ", " v " и те, которые имеют более одного места, как " x " и " v "

 3
Author: Pedro Erick, 2016-01-07 18:22:42

Такое регулярное выражение решает проблему, она ищет одного или более пробелов, за которым следует 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
)
 1
Author: rray, 2016-01-07 18:25:05