2013-04-25 2 views
0

Мне нужно разделить несколько строк в нескольких файлах разными разделителями. Я думаю, что preg_split должен выполнять эту работу, но я никогда не работал с материалом PCRE REGEX. Я мог бы также изменить все мои разделители на совместимость, но это добавляет ненужные вычисления.Сделать несколько разделителей REGEX для preg_split

В: Мои разделители состоят из (,) (;) (|) (пробел), и мне любопытно, как построить такой REGEX.

+2

'preg_split ('/, |; | \ || \ s /', $ жала);' Yaaaay! – HamZa

+0

Что не так с моим вопросом? – Madmenyo

+0

Я думаю, потому что это очень простая задача, и если вы посмотрите на документы PHP, вы бы нашли [хороший пример] (http://php.net/manual/en/function.preg-split.php# пример-4677) – HamZa

ответ

4

Поместите символы в квадратных скобках []:

$parts = preg_split('/[,;| ]/', $string, null, PREG_SPLIT_NO_EMPTY); 

Вы также можете использовать \s вместо символа пробела, который соответствует всем видам whitspace, таким как вкладки и переводы строк.

+0

Спасибо, я немного ошеломлен тем, насколько простым является регулярное выражение. Выполняет ли [] проверку для каждого символа внутри этого? Сложно найти эту простую информацию в кучах более совершенного материала регулярных выражений. – Madmenyo

+2

@MennoGouw это называется символьным классом, если вы хотите больше узнать об этом. [Вот хороший учебник] (http://www.regular-expressions.info/tutorial.html), который не подавляет вас «кучами более сложных материалов регулярного выражения», прежде чем объяснять основы очень тщательно. –

1

Попробуйте это:

$string = "foo:bar|it;is:simple"; 
print_r(preg_split ('/,|;|\||\s/' , $string)); 
Смежные вопросы