Кто-нибудь может расшифровать это для меня?PHP (я думаю) - PullRequest
0 голосов
/ 29 мая 2010

Этот код используется для разбора электронной почты, он хранится в виде таблицы в базе данных mySQL. Я считаю, что это PHP-код. Что делает (.+)?

/A new order has been successfully placed through(.+)Name:(.+)Company:(.+)Email:(.+)Address 1(.+)Order ID:(.+)Date:(.+)Payment Type:(.+)Order Status:(\s*)Accepted(.*)\n(.+)\$([\d\.]+)\s+X/si

Спасибо, супер-боги!

Ответы [ 6 ]

6 голосов
/ 29 мая 2010

Это похоже на совпадение с регулярным выражением. (.+) части являются «подстановочными» снимками.

Это может быть выполнено для строки и может быть извлечена необходимая информация. В большинстве случаев эта строка не зависит от языка.

Всего несколько заметок:

/si в конце означает «без учета регистра» и «. соответствовать всем »(значит. будет соответствовать всему, включая \ n (чего обычно нет))

На захваты ((.+)) можно ссылаться после сопоставления как $# на вашем среднем языке с поддержкой регулярных выражений (где # - порядок, в котором (.+) появляется в строке регулярных выражений.

РЕДАКТИРОВАТЬ: Вы обновили свой вопрос в качестве примера, раздел Name:(.+)Company:(.+) будет соответствовать Name:Some random set of characters Company: Some more random characters, где «Некоторый случайный набор символов» и «Некоторые дополнительные случайные символы» извлекаются в переменные $1 и $2 (потому что они являются первым и вторым в порядке в вашем регулярном выражении).

2 голосов
/ 29 мая 2010

Это шаблон регулярных выражений. Соответствующая документация PHP начинается здесь: PCRE (Perl-совместимое регулярное выражение) Введение

Каждый .+ является заполнителем для «любого символа, один или несколько раз». Круглые скобки позволяют сделать так, чтобы все, что соответствует этому заполнителю, было «захвачено», чтобы его можно было использовать позже (в вашем случае, чтобы сохранить его в базе данных).

1 голос
/ 29 мая 2010

Кажется, это грязное регулярное выражение для проверки того, что фактически существуют подстроки «Имя», «Компания» и т. Д., Шаблон (. +), Позволяющий на самом деле получить значение каждого «поля», здесь он ловит все вокруг этих подстрок.

Я думаю, что это аргумент для функции php ereg ();

1 голос
/ 29 мая 2010

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

0 голосов
/ 29 мая 2010

(. +) - это подстановочный знак, написанный на PCRE (регулярное выражение).

0 голосов
/ 29 мая 2010

это подстановочный знак. Это . означает один символ, а + означает комбинацию указанного символа. like [a-zA-Z +] означает сочетание символов в диапазоне от a-z A-Z до [a-z +]. означает один символ после a-z

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...