Регулярные выражения PHP: сопоставление набора терминов без записи совпадений - PullRequest
1 голос
/ 05 сентября 2011

У меня, как мне кажется, довольно простая проблема с регулярными выражениями:

// Example strings

$string = "test test 24/11/2009";
$string = "test test 21-11-09";
$string = "test testtest 24.11.2009test";

$delim = "(\.|-|/)";
// dd/mm/yyyy
preg_match("#[^0-9](\d{1,2})$delim(\d{1,2})$delim(20\d{2})[^0-9]#i", $string, $result);
// dd/mm/yy
preg_match("#[^0-9](\d{1,2})$delim(\d{1,2})$delim(\d{2})[^0-9]#i", $string, $result);

Теперь я хочу сопоставить разделители без их отображения в массиве $ result.

Ответы [ 2 ]

4 голосов
/ 05 сентября 2011

Разделитель - один в ".", "-", "/": и они не включены в $ result, потому что их нет в "()"

$delim = "[./-]+";
1 голос
/ 05 сентября 2011

Группа захвата должна выполнить работу:

$delim = "(?:\.|-|/)";
...