Latest web development tutorials

expressões regulares Perl

Regex (expressão regular) descreve um conjunto de cordas que podem ser usados ​​para verificar se uma seqüência contém um certo substring substring correspondência não substituir ou remover uma condição corresponde a uma substring de uma string e assim por diante.

função regex Perl da linguagem é muito poderoso, basicamente, a língua comum mais poderosa, muitos design de linguagem apoio de expressão regular quando eles são referência expressões regulares Perl.

Três formas de expressões regulares Perl são correspondidos, a substituição e conversão:

  • Jogo: m / / (Também abreviado como / / M Omitido)

  • Substituir: s / / /

  • Conversão: tr / / /

Estas três formas e são geralmente= ~ ou! ~Com o uso = ~ representa jogo! ~ Disse que eles não se encontraram.


operador de jogo

Jogo operador m // usado para corresponder a uma cadeia ou uma instrução de expressão regular, por exemplo, para coincidir com o escalar $ bar no "run", o código da seguinte forma:

#!/usr/bin/perl

$bar = "I am w3big site. welcome to w3big site.";
if ($bar =~ /run/){
   print "第一次匹配\n";
}else{
   print "第一次不匹配\n";
}

$bar = "run";
if ($bar =~ /run/){
   print "第二次匹配\n";
}else{
   print "第二次不匹配\n";
}

O programa acima, a saída é:

第一次匹配
第二次匹配

modificadores padrão de correspondência

Há algum padrão comum modificadores correspondentes, como segue:

modificadores descrição
Eu Ignorar modo de capitalização
m modo multi-line
o Apenas atribuído uma vez
s modo linha-única, "." Match "\ n" (o padrão não corresponde)
X Ignorar modo em branco
g Jogo global
cg Após o fracasso da harmonização global, permite encontrar um texto correspondente novamente

variáveis ​​regex

Perl existirá após o processamento para corresponder ao valor dos três nome variável especial:

  • A parte frontal daparte de cadeia correspondente: $ `
  • $ &: String Matching
  • $ ': Não é um jogo para os restantes cordas

Se estas três variáveis ​​juntos, você vai ter a string original.

Exemplos são os seguintes:

#!/usr/bin/perl

$string = "welcome to w3big site.";
$string =~ m/run/;
print "匹配前的字符串: $`\n";
print "匹配的字符串: $&\n";
print "匹配后的字符串: $'\n";

A saída do programa acima é:

匹配前的字符串: welcome to 
匹配的字符串: run
匹配后的字符串: oob site.

operadores de substituição

Substituição operador s /// operador é para coincidir com a expansão do uso da nova cadeia para substituir a seqüência de caracteres especificada. O formato de base é a seguinte:

s/PATTERN/REPLACEMENT/;

PADRÃO para coincidir com o modelo, substituição para substituir a string.

Por exemplo, "google" Vamos substituir a seguinte cadeia é "w3big":

#!/usr/bin/perl

$string = "welcome to google site.";
$string =~ s/google/w3big/;

print "$string\n";

A saída do programa acima é:

welcome to w3big site.

modificador de operação de substituição

Substituir modificador de funcionamento como se segue:

modificadores descrição
Eu Se você adicionar "i" no modificador, então o caso sensibilidade regular será cancelado, a "a" e "A" é o mesmo.
m O início padrão regular "^" e no fim "$" é apenas para seqüência regular se acoplado com um modificador de "m", em seguida, o início eo fim de cada linha irá se referir à string: No início de cada linha é "^", final é "$".
o Expressão é executado apenas uma vez.
s Se você adicionar "s" no modificador, então o padrão. "" Em nome de qualquer caractere, exceto nova linha vai se transformar em qualquer personagem, incluindo nova linha é!
X Se você adicionar o modificador, caracteres em branco expressão será ignorado, a menos que tenha sido escapado.
g Substitua todas as cadeias correspondentes.
e Como uma expressão de cadeia de substituição

Operadores de conversão

O seguinte é uma modificadores operador de conversão associados:

modificadores descrição
c Conversão de todos os caracteres não especificada
d Apagar todos os caracteres especificados
s A mesma saída encolhido a uma pluralidade de caracteres

Os exemplos a seguir o $ variável string com todas as letras minúsculas convertidos em maiúsculas:

#!/usr/bin/perl 

$string = 'welcome to w3big site.';
$string =~ tr/a-z/A-z/;

print "$string\n";

A saída do programa acima é:

WELCOME TO w3big SITE.

O exemplo a seguir utiliza / s variável $ string repetindo caracteres apagados:

#!/usr/bin/perl

$string = 'w3big';
$string =~ tr/a-z/a-z/s;

print "$string\n";

A saída do programa acima é:

runob

Mais exemplos:

$string =~ tr/\d/ /c;     # 把所有非数字字符替换为空格
$string =~ tr/\t //d;     # 删除tab和空格
$string =~ tr/0-9/ /cs    # 把数字间的其它字符替换为一个空格。

regras mais regulares de expressão

expressão descrição
. Corresponder a todos os personagens, exceto nova linha
x? Jogo 0 ou uma string x
x * Jogo 0 ou mais vezes x corda, mas o número mínimo de possíveis correspondências
x + Jogo 1 ou mais vezes x corda, mas o número mínimo de possíveis correspondências
. * Jogo 0 ou mais vezes qualquer caractere
. + Jogo 1 ou mais vezes por qualquer caractere
{M} Corresponder exatamente à seqüência de caracteres especificada de m
{M, n} Jogos m ou mais ou menos especificada cadeia n
{M} Jogo m ou corda mais específico
[] Que corresponde a um caractere dentro de []
[^] O jogo não conhecer os personagens em []
[0-9] Corresponder a todos os caracteres numéricos
[Az] Combinar todos os caracteres alfabéticos em minúsculas
[^ 0-9] Corresponder a todos os caracteres não-numéricos
[^ AZ] Jogos quaisquer caracteres alfabéticos minúsculos
^ Um personagem que coincide com o início
$ Coincide com o caractere final do personagem
\ D Corresponde a um caractere de dígito, e [0-9] a mesma sintaxe
\ D + Combinar cadeia numérica múltipla e [0-9] + sintaxe
\ D Não-digital, o outro com \ d
\ D + Não-digital, o outro com \ d +
\ W Uma série de letras ou números, e [a-zA-Z0-9] sintaxe
\ W + E [a-zA-Z0-9] + sintaxe
\ W letras não inglesas ou números, strings e [^ a-zA-Z0-9] a mesma sintaxe
\ W + E [^ a-zA-Z0-9] + sintaxe
\ S Espaços e [\ n \ t \ r \ f] a mesma sintaxe
\ S + E [\ n \ t \ r \ f] + como
\ S Não-espaço, e [^ \ n \ t \ r \ f] a mesma sintaxe
\ S + E [^ \ n \ t \ r \ f] + sintaxe
\ B Inglês letras, números correspondentes cadeia fronteira
\ B Incompatíveis no alfabética, corda limite numérico
a | b | c Em linha com uma cadeia de caracteres que corresponde ao caráter ou carácter b ou c
abc cadeia Abc correspondente (padrão) contêm () vai se lembrar este símbolo para localizar a cadeia, é uma sintaxe muito útil. A primeira cadeia (dentro) encontraram esta variável se torna $ 1 ou \ 1 variável, ea segunda (interna) encontraram uma variável de cadeia em uma variável $ 2 ou \ 2, e assim por diante para baixo.
/ Padrão / i i Este parâmetro indica ignorar caso em Inglês, ou seja, quando a cadeia de jogo, ignorando a pergunta caso em Inglês. \ Se você quiser encontrar um caractere especial no modo padrão, como "*", terá que adicionar na frente do caractere em \ símbolo, isso vai permitir caracteres especiais falhar