*   >> Lectura Educación Artículos >> tech >> desarrollo web

Regex modificadores en Php

Regex modificadores en PHP PHP expresiones regulares - Parte V Introducción Matching es sensible a mayúsculas. Usted no puede saber si lo que busca es en minúsculas o en mayúsculas o ha mezclado los casos. Es posible que usted pueda hacer un caso partido insensibles. Usted necesita lo que se llama un modificador para esto. Hay un buen número de modificadores y cada uno tiene su propio propósito. Vamos a aprender algo de ellos en esta parte de la serie. El i Modificador Por defecto, coincidente entre mayúsculas y minúsculas.

Para que sea más sensible a mayúsculas, usted tiene que utilizar lo que se llama el modificador i. Así que si tenemos la expresión regular, /enviar /y luego también tenemos $ subject = "Haga clic en el botón Enviar." el siguiente código no producirá un partido: $ subject = "Haga clic en el botón Enviar."; $ subject = "Haga clic en el botón Enviar."; si (preg_match ("/enviar /", $ asunto)) echo "emparejada". "Else echo" No Matched ".

"?> La expresión regular no coincida con la cadena de asunto, porque la expresión regular tiene "enviar", donde S es en minúsculas, pero la cadena de asunto ha "Enviar", donde S es en mayúsculas. Si desea que este juego sea mayúsculas y minúsculas, a continuación, su expresión regular tendrá que ser /enviar /i Nota i justo después de la segunda barra inclinada. Es el modificador i. El siguiente código producirá un partido. $ subject = "Haga clic en el botón Enviar."; si (preg_match ("/envío /i", $ asunto)) echo "emparejada". "Else echo" No Matched ".

"?> Matching ha ocurrido porque hemos hecho el caso de expresiones regulares insensibles, con el modificador i. Coincidencia Global Es posible que usted tiene más de una subcadena en la cadena de asunto que coincida con la expresión regular. Por defecto, sólo la primera subcadena en la asignatura se corresponde. Para hacer coincidir todas las cadenas secundarias en el tema, usted tiene que utilizar la preg_match_all función (). Esta es la sintaxis: int preg_match_all (string $ patrón, string $ asunto, array & $ coincidencias [, int $ flags]) El primer argumento es la expresión regular.

El segundo es el sujeto. La tercera es la matriz, que contiene todos los partidos. Se trata de una matriz de dos dimensiones, aquí (Para la función preg_match (), es una matriz unidimensional). El cuarto argumento es opcional. Vamos a hablar sólo alrededor de una bandera para este argumento. Considere la siguiente cadena de asunto: $ subject = "Un gato es un animal Una rata es un animal Un murciélago es una criatura..."; En el asunto de referencia, tiene las cuerdas secundarias: gato, rata y murciélago. Usted tiene gato en primer lugar, a continuación, rata y luego bate.

Cada una de estas cadenas sub coincide con la siguiente expresión regular: /[cbr] en /Este patrón coincidirá sólo la primera cadena de sub, "gato". Si quieres "gato" y "rata" y "bat" que se ajustará, usted tiene que utilizar la función preg_match_all () como el código siguiente se muestra: $ subject = "Un gato es un animal Una rata es un animal A.. murciélago es una criatura. "; if (preg_match_all ("/[cbr] en /", $ sujetos, $ partidos, PREG_PATTERN_ORDER)) echo "emparejada". "Else echo" No Igualados "." Echo "echo $ coincidencias [0] [0]." Echo $ coincidencias [0] [1]. "$ Partidos eco [0] [2].

"?> El último argumento en la función preg_match_all () es una bandera. Vamos a volver a ella en breve. Los primeros, segundos y terceros elementos de la primera matriz de la matriz de dos dimensiones son "cat", "rata" y "bat". Así que la salida del código anterior es: Matched gato rata bat Ahora la matriz bidimensional proporciona dos matrices en el código. La primera matriz recibe las cuerdas sub coincidentes, en el orden en que se observaron las cuerdas secundarias en el tema. Esto es coincidente global.

La bandera PREG_PATTERN_ORDER Con este indicador, los resultados son tales que, $ coincidencias [0] es una matriz de patrón completo coincide, $ coincidencias [1] es una matriz de cadenas que coinciden con el primer sub-patrón entre paréntesis, y así sucesivamente. Los S y M modificadores El modificador de s se refiere a una sola línea y el modificador de m se refiere a varias líneas en una cadena. Por lo general, sin estos modificadores, conseguimos lo que queremos. A veces, sin embargo, queremos hacer un seguimiento de \\ n caracteres.

Un archivo en el disco duro podría estar compuesto por muchas líneas de texto cada una terminando con el carácter \\ n. Por defecto, el ancla ^ y $ personajes al principio y al final de la cadena de asunto. Podemos hacer que anclan el principio y el final de las líneas. Los s y m modificadores afectan a la interpretación de la ^, $ y el metahcaracter punto. Esta es la descripción completa de las S y M modificadores * no hay modificadores: Aquí nos fijamos en el caso en que no hay ningún modificador justo después de la segunda barra inclinada. Bajo esta condición '.

' coincide con cualquier carácter excepto "\\ n". ^ Partidos sólo en el inicio de la cadena y $ partidos sólo al final cadena de asunto o antes \\ n al final. Este es el comportamiento predeterminado del metacarácter punto. * S modificador: Esto hace que la cadena de asunto se comporta como una línea de tiempo independiente de cualquier carácter de nueva línea que pueden estar allí. Asi que '.' coincide con cualquier carácter, incluso "\\ n". ^ Partidos sólo en el inicio de la cadena y $ partidos sólo al final de la cadena de asunto o antes n \\.

* M modificador: Esto hace que la cadena de asunto se comporta como un conjunto de varias líneas. En la cadena de asunto, líneas consecutivas están separadas por el carácter \\ n. Asi que '.' coincide con cualquier carácter excepto "\\ n". De esta manera ^ y $ son capaces de igualar al inicio o al final de cualquier línea dentro de la cadena de asunto. Aquí, ^ partidos al principio de la cadena o justo después de la n carácter \\, mientras que $ coincide justo antes el carácter \\ n. Usaremos ejemplos para ilustrar las tres condiciones anteriores. Comenzamos observando la primera condición.

No hay modificadores Leer el primer punto por encima de nuevo. Considere la siguiente cadena de asunto de varias líneas: $ subject = "La primera frase \\ n La segunda frase \\ n La tercera frase \\ n..."; La cadena de asunto tiene tres líneas. La siguiente expresión produce una coincidencia. preg_match ("/segundo /", $ sujeto) La cadena de sub "segundo", en la segunda línea (frase) se empareja. Considere el siguiente patrón: /^.*$/Este patrón (regex) Se espera que, en circunstancias normales, para que coincida con la cadena completa.

Vamos a ver si lo hace con la cadena de asunto de varias líneas arriba. Considere el siguiente código: $ subject = "La primera frase \\ n La segunda frase \\ n La tercera frase \\ n..."; si (preg_match ("/^.*$/", $ asunto)) echo "emparejada". "Else echo" No Igualados "."?> Si se ejecuta este código, no se producirá ninguna coincidencia. Esto es debido a la presencia del carácter \\ n en la cadena de asunto. Por defecto la clase de puntos no coincide con el carácter \\ n. Espero que ahora aprecio lo que el primer punto anterior está hablando.

s modificador Lea el segundo punto por encima de nuevo. Vamos a hacer una cosa similar que hicimos antes. Considere la siguiente cadena de asunto: $ subject = "La primera frase \\ n La segunda frase \\ n La tercera frase \\ n..."; La cadena de asunto tiene tres líneas. La siguiente expresión produce una coincidencia. preg_match ("/segundo /s", $ sujeto) Observe que el modificador de s se ha utilizado. La cadena de sub "segundo", en la segunda línea (frase) se empareja. Considere el siguiente patrón: /^.*$/s Se supone que este patrón (regex) para que coincida con la cadena completa.

Vamos a ver si lo hace con la cadena de asunto de varias líneas arriba. Considere el siguiente código: $ subject = "La primera frase \\ n La segunda frase \\ n La tercera frase \\ n..."; si (preg_match ("/^.*$/s", $ asunto)) echo "emparejada". "Else echo" No Igualados "."?> Un partido se produjo. Esto es porque, con el modificador s, el punto (clase) coincide con el carácter de nueva línea. Espero que ahora aprecio lo que el segundo punto anterior está hablando. El m Modificador Leer el tercer punto por encima de nuevo. Aquí nos fijamos en el efecto del modificador m.

Considere la siguiente cadena de asunto: $ subject = "La primera frase \\ n La segunda frase \\ n La tercera frase \\ n..."; La cadena de asunto tiene tres líneas. La siguiente expresión produce una coincidencia. preg_match ("/segundo /m", $ sujeto) Observe que el modificador de m se ha utilizado. La cadena de sub "segundo", en la segunda línea se corresponde. Considere el siguiente patrón: /(^.*$)/m Con el modificador m, este patrón (expresión regular) debe coincidir con una sola línea. Vamos a ver si lo hace con la cadena de asunto de varias líneas arriba.

Considere el siguiente código: $ subject = "La primera frase \\ n La segunda frase \\ n La tercera frase \\ n..."; si (preg_match ("/^.*$/m", $ asunto)) echo "emparejada". "Else echo" No Igualados "."?> Sólo la primera frase se corresponde. Por lo tanto, corresponde la primera línea. Se puede sincronizar y capturar todas las tres frases en las tres líneas. Usted pone el patrón entre paréntesis (subgrupo). Utilice la función regex PHP, preg_match_all () en lugar de preg_match (). También utiliza el PREG_PATTERN_ORDER bandera.

La matriz que contiene las cuerdas sub capturados es una matriz de dos dimensiones. Tiene dos matrices. El siguiente código ilustra esto: $ subject = "La primera frase \\ n La segunda frase \\ n La tercera frase \\ n..."; si (preg_match_all ("/(^.*$)/m", $ asunto, $ partidos, PREG_PATTERN_ORDER)) echo "Matched". "Else echo" No Igualados "." Echo "echo $ coincidencias [0] [0]." Echo $ coincidencias [0] [1]. "Echo $ coincidencias [0] [2]." Echo "echo $ coincidencias [1] [0]." Echo $ coincidencias [1] [1]. "$ Partidos eco [1] [2].

">

Page   <<       [1] [2] [3] [4] [5] >>
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.