Регулярное выражение

  • Автор темы Автор темы rosty
  • Дата начала Дата начала

rosty

Новичок
Регулярное выражение

Помогите составить регулярное выражение, которое разобьет строку на
составляющие по символу разделителю, аналогично explode, за исключением того, что этот
символ не в кавычках (одинарные или двойные)

Пример:
Строка: abc ab"gg h" ee
Разделитель: пробел
Результат:
[0] => abc
[1] => ab"gg h"
[2] => ee

Пример2:
Строка: abc ab"dd \"dd" ee
Разделитель: пробел
[0] => abc
[1] => ab"dd \"dd"
[2] = ee

Пример3:
Строка: abc ab'gg h' ee
Разделитель: пробел
Результат:
[0] => abc
[1] => ab'gg h'
[2] = ee
 
preg_match_all("~[^\s]*('|\").*?((?<!\\\\)\\1)[^\s]*|[^\s]+~s", $string, $matches);

как-то так...
 
Помогите составить дрегулярку для ввода мыла. Нашел:

preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$email)

Но она пропускает мыла [email protected] или даже [email protected]''8 (т.е. цифры в домене верхнего уровня).
 
Ты же хакер. :D Воспользуйся поиском, раз у самого не получается. И не стоит засорять чужую тему.
 
Сверху