*   >> Чтение Образование Статьи >> tech >> web development

Regex Модификаторы в Php

<р> Regex Модификаторы в PHP PHP регулярных выражений - Часть V Введение Соответствие чувствительно к регистру. Вы не можете знать, если то, что вы ищете в нижнем регистре или верхнем регистре или смешивать случаи. Это возможно для Вас, чтобы сделать регистрозависимости матч. Вы должны, что называется модификатор для этого. Есть большое количество модификаторов, и каждый имеет свою собственную цель. Мы узнаем, некоторые из них в этой части серии. Ввода Модификатор По умолчанию, сопоставление с учетом регистра.

Чтобы сделать это без учета регистра, вы должны использовать то, что называется я модификатор. Так что, если у нас есть регулярное выражение, /отправить /, а затем у нас также есть $ предметом = "Нажмите кнопку Отправить." следующий код не будет производить матч: $ предметом = "Нажмите кнопку Отправить."; $ при условии = "Нажмите кнопку Отправить."; если (preg_match ("/отправить /", $ тема)) эхо "Согласованные". "Еще эхо" Не согласованный ".

"?> Регулярное выражение не соответствует строка темы, поскольку регулярное выражение имеет "отправить", где S в нижнем регистре, но тема струна "Отправить", где S в верхнем регистре. Если вы хотите, чтобы это соответствие быть не чувствительным случаем, то ваш регулярное выражение будет иметь, чтобы быть /отправить /я Обратите внимание на я просто после второй косую черту. Это я модификатора. Следующий код будет производить матч. $ при условии = "Нажмите кнопку Отправить."; если (preg_match ("/отправить /я", $ тема)) эхо "Согласованные". "Еще эхо« Не согласованный ".

"?> Согласование произошло потому, что мы сделали так регулярное выражение нечувствительным, я с модификатором. Глобальный соответствия Это возможно для Вас, чтобы иметь больше, чем одну строку подменю в строке темы, что бы соответствовать регулярное выражение. По умолчанию, только первый суб строка в теме сочетается. Чтобы соответствовать все суб строк в теме, вы должны использовать функцию preg_match_all (). Это синтаксис: INT preg_match_all (строка $ шаблон, строка $ вопросу, массив & $ матчи [, Int $ флаги]) Первый аргумент является регулярное. Во-вторых, тема.

В-третьих, массив, который содержит все матчи. Это двумерный массив, здесь (Для функции preg_match (), то одномерный массив). Четвертый аргумент является необязательным. Мы будем говорить только об одном флаг для этого аргумента. Рассмотрим следующий предмет строку: $ предметом = "Кошка животное крыса животное Летучая мышь существо..."; В данному вопросу, у вас есть суб строк: кошка, крыса и битой. Вы должны кот, а затем крыс, а затем битой. Каждый из этих суб строк соответствует следующее регулярное выражение: /[CBR] в /Эта модель будет соответствовать лишь первый суб строку "кот".

Если вы хотите "кошка" и "крыса" и "битой", чтобы быть согласованы, вы должны использовать функцию preg_match_all (), как следующий код иллюстрирует: $ предмет = "Кошка животное крыса животное A.. летучая мышь существо ". если (preg_match_all ("/[CBR] в /", $, $, подлежащие матчи, PREG_PATTERN_ORDER)) эхо "Согласованные". "Еще эхо« Не согласованный "." Эхо "эхо $ матчи [0] [0]." Эхо $ матчи [0] [1]. "Эхо $ матчи [0] [2]."?> Последний аргумент в функции preg_match_all () это флаг. Мы вернемся к нему в ближайшее время.

Первый, второй и третий элементы первого массива двумерного массива "кошки", "крысы" и "битой". Таким образом, выход выше кода: Согласованные кошка крыса битой Теперь двумерный массив имеет два массивы в коде. Первый массив получает суб строк совпадают, в том порядке, в котором суб строки были замечены в теме. Это глобальная соответствия. PREG_PATTERN_ORDER флаг С этим флагом, результаты таковы, что $ матчи [0] это массив полной базой спички, спички $ [1] это массив строк, сопоставимых по первой скобки подмаски, и так далее.

S- и M Модификаторы с модификатором относится к одной линии и м модификатора относится к нескольким линиям в строке. Как правило, без этих модификаторов, мы получаем то, что мы хотим. Иногда, однако, мы хотим, чтобы отслеживать \\ п символов. Файл на жестком диске может быть составлен из многих строк текста каждого заканчивая \\ п характер. По умолчанию, якорь ^ и $ символов в начале и в конце строки темы. Мы можем сделать их закрепить начало и конец линии. В ы м и модификаторы влияют на интерпретацию ^, $ и точка metahcaracter.

Вот полное описание с и м модификаторов * нет модификаторы: Здесь мы не смотрим на случае, когда нет модификатора только после второго косой чертой. При этом условии ". соответствует любому символу, кроме "\\ п". ^ Совпадает только в начале строки, а $ только в конце строки темы или перед \\ N в конце. Это поведение по умолчанию точка метасимволом. * С модификатором: Это делает предметом строка ведет себя как долго независимую линию любой символ новой строки, которые могут быть там. Так '.' соответствует любому символу, даже "\\ N".

^ Совпадает только в начале строки, а $ только в конце строки темы или перед \\ N. * М модификатор: Это делает предметом строка ведет себя как набор из нескольких строк. В строке темы, последовательных строк разделены \\ п характер. Так '.' соответствует любому символу, кроме "\\ п". Таким образом, ^ и $ в состоянии соответствовать в начале или в конце каждой строки в строке темы. Здесь ^ соответствует началу строки или просто после \\ п характер, в то время как $ совпадает только перед \\ п характер. Мы будем использовать примеры для иллюстрации выше три условия. Мы начнем с первого условия.

Нет Модификаторы Читать первую точку снова выше. Рассмотрим следующий многострочный строка темы: $ предметом = "Первое предложение \\ п Второе предложение \\ п Третье предложение \\ п..."; Тема строка имеет три линии. Следующее выражение производит матч. preg_match ("/с /", $ тема) Суб строка "второй", на второй линии (предложения) сопоставляются. Рассмотрим следующий шаблон: шаблон /^.*$/Это (регулярное выражение), как ожидается, в нормальных условиях, чтобы соответствовать всю строку. Давайте посмотрим, если он делает это с выше мульти-линии строки текста.

Рассмотрим следующий код: $ предметом = "Первое предложение \\ п Второе предложение \\ п Третье предложение \\ п..."; если (preg_match ("/^.*$/", $ тема)) эхо "Согласованные". "Еще эхо" Не согласованный "."?> Если запустить этот код, нет соответствующего не произойдет. Это из-за наличия \\ N символа в строке, в. По умолчанию класс точка не совпадает с \\ п характер. Я надеюсь, что теперь вы цените то, что первая точка выше говорил. с модификатором снова выше Прочитайте вторую точку. Мы будем делать нечто подобное, что мы делали раньше.

Рассмотрим следующий предмет строку: $ предметом = "Первое предложение \\ п Второе предложение \\ п Третье предложение \\ п..."; Тема строка имеет три линии. Следующее выражение производит матч. preg_match ("/с /с", $ тема) Обратите внимание, что с модификатором был использован. К югу строка "второй", на второй линии (предложения) сопоставляются. Рассмотрим следующий шаблон: шаблон /^.*$/s Это (регулярное выражение), как предполагается, в соответствии всю строку. Давайте посмотрим, если он делает это с выше мульти-линии строки текста.

Рассмотрим следующий код: $ предметом = "Первое предложение \\ п Второе предложение \\ п Третье предложение \\ п..."; если (preg_match ("/^.*$/S", $ тема)) эхо "Согласованные". "Еще эхо" Не согласованный "."?> Матч производится. Это потому, что, с ы модификатора, точка (класс) соответствует символу новой строки. Я надеюсь, что теперь вы цените то, что вторая точка выше говорил. М Модификатор снова выше Читайте третью точку. Здесь мы рассмотрим влияние на м модификатора. Рассмотрим следующий предмет строку: $ предметом = "Первое предложение \\ п Второе предложение \\ п Третье предложение \\ п..

."; Тема строка имеет три линии. Следующее выражение производит матч. preg_match ("/с /м", $ тема) Обратите внимание, что м модификатор используется. К югу строка "второй", во второй линии совпадают. Рассмотрим следующий шаблон: /(^.*$)/m С м модификатора, эта модель (регулярное выражение) должна соответствовать только одна линия. Давайте посмотрим, если он делает это с выше мульти-линии строки текста. Рассмотрим следующий код: $ предметом = "Первое предложение \\ п Второе предложение \\ п Третье предложение \\ п..."; если (preg_match ("/^.*$/м", $ тема)) эхо "Согласованные".

"Еще эхо" Не согласованный "."?> Только первое предложение совпадают. Так что соответствует первой линии. Вы можете соответствовать и захватить все три предложения в трех линиях. Вы кладете рисунок в скобках (подгруппы). Вы можете использовать функцию PHP регулярных выражений, preg_match_all () вместо preg_match (). Вы также можете использовать флаг PREG_PATTERN_ORDER. Массив, содержащий захваченные суб строк является двумерный массив. Он имеет два массива. Следующий код иллюстрирует это: $ Subject = "Первое предложение \\ п Второе предложение \\ п Третье предложение \\ п...

"; если (preg_match_all ("/(^.*$)/м", $ при условии, $ спички, PREG_PATTERN_ORDER)) эхо "Согласованные". "Еще эхо« Не согласованный "." Эхо "эхо $ матчи [0] [0]." Эхо $ матчи [0] [1]. "Эхо $ матчи [0] [2]." Эхо "эхо $ матчи [1] [0]." Эхо $ матчи [1] [1]. "Эхо $ матчи [1] [2].">

Page   <<       [1] [2] [3] [4] [5] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.