InformáticaProgramación

PHP (regex) - o que é? Exemplos e verificación de expresións regulares

Ao traballar con texto en calquera linguaxe de programación moderna, os desenvolvedores atopar constantemente cos obxectivos da validación de entrada á conformidade co estándar desexado, buscar e substituír fragmentos de proba e outros tipos de operacións de tratamento de información de carácter. Desenvolver os seus propios algoritmos de validación leva á perda de tempo, a compatibilidade de código e complexidade no seu desenvolvemento e modernización.

O rápido desenvolvemento das linguas Internet e web-design esixiu a creación de medios versátiles e compactas de procesamento de texto cun importe mínimo esixido para este código. El non é unha excepción e é popular entre principiantes e profesionais desenvolvedores da linguaxe PHP. A linguaxe de expresión regular como os modelos de texto para simplificar a tarefa de xestionar o texto e reducir o código de decenas e centos de liñas. Moitos problemas non poden ser resoltos en todo sen el.

Expresións regulares en PHP

linguaxe PHP ten tres mecanismos para traballar con expresións regulares - «ereg», «mb_ereg» e «preg». O máis común é a interface «preg», cuxas funcións proporcionan acceso á biblioteca do apoio de regexp PCRE, orixinalmente desenvolvido para a linguaxe Perl, que está incluído no paquete de PHP. funcións nun dato correspondente secuencia de texto preg de busca, segundo un determinado patrón na linguaxe de expresións regulares.

Basics sintaxe

Como parte dun pequeno artigo é imposible describir en detalle toda a sintaxe de expresión regular, polo que hai unha literatura especial. Presentamos só os principais elementos para mostrar oportunidades para desarrolladores e comprender os exemplos de código.

En PHP expresión regular é formalmente definido moi difícil e, polo tanto, simplificar a descrición. Unha expresión regular é unha cadea de texto. Consiste nun modelo de ficha dedicado eo modificador indicando a forma de tratar con isto. Posible inclusión nas varias alternativas e repeticións de patróns.

Por exemplo, na expresión / \ d {3} - \ d {2} - \ d {2} / m divisor é "/", seguido do molde, eo símbolo «m» é o modificador.

Todo o poder das expresións regulares son codificados usando o meta-carácteres. A principal metacharacter linguaxe é a barra invertida - "\". El cambia o tipo de caracteres seguinte no lado oposto (isto é. E. convertido nun carácter universal carácter común e viceversa). Outra metacharacter importante é unha liña recta «|», especifica o modelo alternativo. Máis exemplos de meta-caracteres:

^ Comezar obxecto ou unha corda
( Comezar subpadrão
) subpadrão final
{ iniciar quantificador
} quantificador End
\ D algarismo decimal de 0 a 9
\ D calquera carácter que non é un número
\ s símbolo baleiro, espazo, tabulación,
\ N dicionario de símbolos

PHP, o procesamento de expresións regulares, espazo considerado como un carácter válido separado, de xeito que a expresión da XYZ e ABC onde son diferentes.

subpadrões

En PHP subpadrões regulares por parénteses, e ás veces son chamados "subexpressions". Realizar as seguintes funcións:

  1. alternativas de distribución. Por exemplo, o patrón de calor (algo | Paxaro |) coincide coas palabras "calor", "Firebird" e "quente". E sen os corchetes será só unha cadea baleira, "paxaro" e "quente".

  2. subpadrão "espectacular". Isto significa que se o patrón combinado substring, logo retorna todos os xogos. Para maior claridade, damos un exemplo. Dada a seguinte expresión regular: o gañador recibe ((ouro | dourados) (medalla | Cup)) - ea corda para xogos "o gañador recibe unha medalla de ouro." Ademais da frase inicial, os resultados da procura serán emitidos: "Medalla de Ouro", "medallas", "ouro".

Operadores repeticións (kvadrifikatory)

Ao compilar a expresión regular é moitas veces necesario para analizar a repetición de números e símbolos. Este non é un problema, se non unha morea de repeticións. Pero o que facer cando non sabemos o número exacto? Neste caso, é necesario o uso de metacaracteres especiais.

Para unha descrición de repeticións usados kvadrifikatory - metacharacters para especificar o número. Kvadrifikatory son de dous tipos:

  • común en soportes;
  • reducida.

quantificador xeral tocado polo número mínimo e máximo de repeticións elemento deixada en forma de dous números nas cintas, como x {2,5}. Se o número máximo de repeticións non é coñecida, o segundo argumento non é especificado: x {2}.

quantificadores abreviados son símbolos para o máis común de repeticións para evitar sintaxe sobrecarga innecesaria. Normalmente hai tres cortes:

1. * - cero ou máis repeticións, o que equivale a {0,}.

2. + - unha ou máis repeticións, ou sexa, {1} ...

3.? - cero ou só unha repetición - {0,1}.

exemplos expresión regular

Para aqueles que aprender expresións regulares exemplos - o mellor libro. Damos algúns que mostran as súas oportunidades, cun mínimo de esforzo. Todo o código é compatible con versións do 4.x PHP e por riba. Para entender completamente a sintaxe e uso de todos os recursos de linguaxe, recomendamos o libro de J .. Friedl, "expresións regulares", que totalmente considerados sintaxe, e hai exemplos de expresións regulares non só PHP, mais tamén a un Python, Perl, MySQL, Java, Ruby e C #.

Validación e-mail

Tarefa. Hai unha páxina en Internet no que o visitante é solicitado enderezo de correo electrónico. expresión regular que comprobar a exactitude dos enderezos antes de enviar mensaxes. Comprobación non garante que a caixa de correo especificada realmente existe e recibe mensaxes. Pero eliminar enderezos obviamente mal, pode.

Decisión. Como ocorre con calquera linguaxe de programación, en PHP verificación de correo-e address expresión regular pode ser aplicado de xeitos diferentes, e os exemplos neste artigo non son a elección final e única. Polo tanto, en cada caso, que debe proporcionar unha lista de requisitos que deben ser tidos en conta durante a programación e implementación específica depende enteiramente do creador.

Así, a expresión que examina un correo electrónico válido, debería comprobar as seguintes condicións:

  1. A presenza en liña comezar o símbolo @, e non hai lagoas.
  2. A parte do dominio do enderezo do símbolo @, contén só caracteres válidos para nomes de dominio. O mesmo se aplica ao nome do usuario.
  3. Durante a comprobación do nome de usuario para determinar a presencia de caracteres especiais, tales como un apóstrofo ou liña vertical. Tales símbolos son potencialmente perigosas e pode ser contida en tales tipos de ataques que inxección SQL. Evite enderezos.
  4. usernames permitir que só un punto, que pode non ser o primeiro ou o último carácter na secuencia.
  5. O nome de dominio debe conter polo menos dous e non máis de seis caracteres.

Exemplo, tendo en conta todas estas condicións se pode ver na figura a continuación.

Validación dun URL

Tarefa. Asegúrese de que a cadea de texto indicado é un válido URL enderezo. Unha vez máis, nótase que as expresións regulares URL de verificación pode ser aplicado de varias maneiras.

Decisión. A nosa versión final é a seguinte:

/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /

Agora analizar os seus compoñentes en máis detalles usando o deseño.

reivindicación 1 Antes da URL non debe ter ningún carácter
reivindicación 2 Comprobe a presenza do prefixo obrigatorio «http»
elemento 3 Non debe haber símbolos
reivindicación 4 Se hai «s», a URL apunta a unha conexión segura «https»
reivindicación 5 parcela esixida do "//"
reivindicación 6 ningún carácter
p. 7-9 Vendo o dominio primeiro nivel ea presenza de punto
p.10-13 Vendo o dominio de escribir o segundo nivel eo punto
p.14-17

estrutura do ficheiro URL - un conxunto de números, letras, subliñados, trazos, puntos, e unha barra ao final

Comprobe os números de tarxeta de crédito

Tarefa. Debe aplicar a validación do número da tarxeta de crédito entraron dos sistemas de pagamento máis comúns. Unha variante só para tarxetas Visa e MasterCard.

Decisión. Ao crear a expresión que precisa para ter en conta a posible presenza de lagoas na sala de entrada. Os díxitos en mapa divídense en grupos para facilitar a lectura e ditado. Polo tanto, é natural que un pode tratar inserir un número desta maneira (ie. E. Usando espazos).

Escribe unha expresión universal que ten en conta os posibles espazos ou guións, é máis complicado do que simplemente descartar todos os caracteres excepto díxitos. Polo tanto, recomendamos o uso de un curinga de expresión / D, que elimina todos os caracteres excepto díxitos.

Agora podes ir directamente ao número do cheque. Todas as empresas, os emisores de tarxetas de crédito usar un formato de número único. No exemplo que se usa, eo cliente non ten que escribir o nome da empresa - é determinado polo número. tarxetas Visa sempre comezan cos números 4 e ten unha lonxitude de 13 ou 16 díxitos. MasterCard comeza na franxa de 51-55 cun longo número 16. Como resultado, obtemos a seguinte expresión:

Antes de procesar a orde tamén pode ser probado nos últimos díxitos do número, que é calculado co algoritmo Luhn.

Número de teléfono Corrección

Tarefa. Comprobar a exactitude do seu número de teléfono introducido.

Decisión. O número de díxitos nos números de teléfono fixo e móbil varían considerablemente en función do país, tan universalmente comprobar usando expresións regulares, número de teléfono correctamente imposible. Pero os números internacionais teñen un formato rigoroso e perfecto para comprobar o nivel. Aínda máis para que máis e máis operadores de teléfono nacionais están a tentar atopar o mesmo patrón. estrutura da sala é a seguinte:

+ CCC.NNNNNNNNNNxEEEE, onde:

- C - é o código do país consistindo 1-3 díxitos.

- N - número ata 14 díxitos.

- E - extensión opcional.

Ademais, é un elemento indispensable, eo sinal X está presente só cando sexa necesario extensión.

Como resultado, temos a seguinte expresión:

^ \ + [0-9] {1,3 } \ [0-9] {4,14}. (?:. X +)? $

Os números no intervalo

Tarefa. Cómpre asegurar coincidencia enteiro dun determinado intervalo. Ademais, é necesario atopar unha expresión regular só os números da gama.

Decisión. Aquí están algunhas expresións para algúns dos casos máis comúns:

Determinar horas 1-24 ^ (1 [0-2] | [1-9]) $
Día o mes 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Segundos ou minutos 0-59 ^ [1-5]? [0-9] $
Un certo número de 1 a 100 * (100 |? [1-9] [0-9]) $
Día do ano 1-366 ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Buscar enderezos IP

Tarefa. Cómpre determinar se unha determinada cadea é un enderezo IP válido en formato IPv4 na franxa de 000.000.000.000-255.255.255.255.

Decisión. Como ocorre con calquera problema na lingua de PHP, a expresión regular ten moitos varintov. Por exemplo, a seguinte:

comprobación liña de expresións

Comprobe expresión regular correctamente para principiantes pode ser difícil debido á complexidade da sintaxe, o que difire de linguas "regulares" de programación. Para solucionar este problema, hai moitos testadores en liña expresións que fan máis doado de comprobar a exactitude do modelo creado no texto real. O programador entra os datos de expresión e comprobación para ver instantáneamente o resultado do tratamento. Xeralmente hai presentar unha sección de referencia, que detalla as expresións regulares, exemplos e diferenzas de implantación para as linguas máis prolongados.

Pero a servizos en liña totalmente confianza resultados non recomendado para todos os desenvolvedores que usan PHP. Unha expresión regular é escrito e revisado en persoa, levanta cualificación e garantir a ausencia de erros.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 gl.unansea.com. Theme powered by WordPress.