Пожалуйста, объясните мне это регулярное выражение - PullRequest
2 голосов
/ 05 декабря 2011

Я наткнулся на следующее, чтобы разбить строку на «токены»:

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

Может ли кто-нибудь объяснить мне, как это отличается от этого:

$tokens = explode(' ', $string);

Любая помощь будет принята с благодарностью: -)

Ответы [ 2 ]

5 голосов
/ 05 декабря 2011

Введенное вами регулярное выражение:

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

разделит входную строку на токены, используя разделитель, который не является тире (-), подчеркиванием (_), буквой (строчными или прописными) иличисло.

Принимая во внимание:

$tokens = explode(' ', $string);

Будет разбивать строку только на токены, используя пробел в качестве разделителя.

2 голосов
/ 05 декабря 2011

Буквальное чтение [^\-_A-Za-z0-9]+:

Соответствует одному или нескольким индивидуальным символам, которые не являются - или _, или буквой от A до Z (с большой буквы или нет) или цифрой.

preg_split будет разбивать входные данные на основе совпадений с приведенным выше, но explode будет разбивать только на пробельные литералы. Есть и другие символы, не исключенные из регулярного выражения, на которые preg_split будет разбиваться, а explode - нет, поэтому результирующие массивы могут отличаться.

...