InglêsFrancêsEspanhol

favicon do OnWorks

perlrebackslash - Online na nuvem

Execute perlrebackslash no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando perlrebackslash que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online Windows ou emulador online MAC OS

PROGRAMA:

NOME


perlrebackslash - sequências e escapes de barra invertida de expressão regular de Perl

DESCRIÇÃO


A documentação de nível superior sobre expressões regulares Perl é encontrada em perlre.

Este documento descreve todas as sequências de barra invertida e de escape. Depois de explicar o papel de
a barra invertida, ela lista todas as sequências que têm um significado especial no Perl regular
expressões (em ordem alfabética), a seguir descreve cada uma delas.

A maioria das sequências é descrita em detalhes em diferentes documentos; o objetivo principal deste
documento é ter um guia de referência rápida que descreve todas as barras invertidas e sequências de escape.

A barra invertida
Em uma expressão regular, a barra invertida pode realizar uma de duas tarefas: ela remove
o significado especial do caractere que o segue (por exemplo, "\ |" corresponde a uma vertical
barra, não é uma alternância), ou é o início de uma barra invertida ou sequência de escape.

As regras que determinam o que é isso são bastante simples: se o personagem segue o
barra invertida é um caractere de pontuação ASCII (não palavra) (ou seja, qualquer coisa que não seja um
letra, dígito ou sublinhado), então a barra invertida remove qualquer significado especial de
o personagem que o segue.

Se o caractere após a barra invertida for uma letra ASCII ou um dígito ASCII, então o
a sequência pode ser especial; em caso afirmativo, ele está listado abaixo. Algumas letras ainda não foram usadas,
portanto, escapá-los com uma barra invertida não os torna especiais. Uma versão futura de
Perl pode atribuir um significado especial a eles, então se você tiver os avisos ativados, os problemas de Perl
um aviso se você usar tal sequência. [1]

No entanto, é garantido que a barra invertida ou as sequências de escape nunca terão uma pontuação
caractere seguindo a barra invertida, não agora e não em uma versão futura do Perl 5. Então
é seguro colocar uma barra invertida antes de um caractere que não seja uma palavra.

Observe que a barra invertida em si é especial; se você quiser combinar uma barra invertida, você tem que
escape da barra invertida com uma barra invertida: "/ \\ /" corresponde a uma única barra invertida.

[1] Há uma exceção. Se você usar um caractere alfanumérico como delimitador de seu
padrão (o que você provavelmente não deveria fazer por razões de legibilidade), você tem que escapar
o delimitador se você quiser combiná-lo. Perl não avisará então. Veja também "Detalhes sangrentos de
analisando construções citadas "em perlop.

Todos da sequências e escapes
Aqueles que não podem ser usados ​​em uma classe de caractere entre colchetes (como "[\ da-z]") são marcados como "Não está em
[]. "

\ 000 Sequência de escape octal. Veja também \ o {}.
\ 1 Referência anterior absoluta. Não em [].
\ a Alarme ou campainha.
\ A começo de string. Não em [].
\ b {}, \ b Limite. (\ b é um backspace em []).
\ B {}, \ B Não é um limite. Não em [].
\ cX Control-X.
\ C Octeto único, mesmo em UTF-8. Não em [].
(Descontinuado)
\ d Classe de caracteres para dígitos.
\ D Classe de caracteres para não dígitos.
\ e caractere de escape.
\ E Desative o processamento de \ Q, \ L e \ U. Não em [].
\ f Alimentação de formulário.
\ F Pasta até \ E. Não em [].
\ g {}, \ g1 Referência anterior nomeada, absoluta ou relativa.
Não em [].
\ G Pos asserção. Não em [].
\ h Classe de caractere para espaços em branco horizontais.
\ H Classe de caractere para espaços em branco não horizontais.
\ k {}, \ k <>, \ k '' Referência anterior nomeada. Não em [].
\ K Mantenha as coisas deixadas de \ K. Não em [].
\ l Próximo caractere em minúsculas. Não em [].
\ L Minúsculas até \ E. Não em [].
\ n (lógico) caractere de nova linha.
\ N Qualquer caractere, exceto nova linha. Não em [].
\ N {} Caractere ou seqüência nomeada ou numerada (Unicode).
\ o {} Sequência de escape octal.
\ p {}, \ pP caractere com a propriedade Unicode fornecida.
\ P {}, \ PP Caractere sem a propriedade Unicode fornecida.
\ Q Citar (desabilitar) metacaracteres de padrão até \ E. Não
no [].
\ r Retorna o caractere.
\ R Nova linha genérica. Não em [].
\ s Classe de caractere para espaços em branco.
\ S Classe de caracteres para espaços não em branco.
\ t Caractere de tabulação.
\ u Titlecase próximo personagem. Não em [].
\ U Maiúsculas até \ E. Não em [].
\ v Classe de caractere para espaços em branco verticais.
\ V Classe de caracteres para espaços em branco não verticais.
\ w Classe de caracteres para caracteres de palavras.
\ W Classe de caracteres para caracteres não-word.
\ x {}, \ x00 Sequência de escape hexadecimal.
\ X Unicode "cluster de grafemas estendido". Não em [].
\ z Fim da string. Não em [].
\ Z Fim da string. Não em [].

Personagem Escapes
Fixo caracteres

Um punhado de personagens tem um dedicado personagem escapar. A tabela a seguir mostra eles,
junto com seus pontos de código ASCII (em decimal e hex), seu nome ASCII, o controle
escape em plataformas ASCII e uma breve descrição. (Para plataformas EBCDIC, consulte "OPERADOR
DIFERENÇAS "em perlebcdic.)

Seq. Descrição do controle do código ASCII do ponto de código.
Dez Hex
\ a 7 07 BEL \ cG alarme ou campainha
\ b 8 08 BS \ cH backspace [1]
\ e 27 1B ESC \ c [caractere de escape
\ f 12 0C FF \ cL formulário feed
\ n 10 0A LF \ cJ alimentação de linha [2]
\ r 13 0D CR \ cM retorno de carro
\ t 9 09 TAB \ cI guia

[1] "\ b" é o caractere de retrocesso apenas dentro de uma classe de caractere. Fora de um personagem
classe, "\ b" sozinho é um limite de caractere de palavra / caractere de não palavra, e "\ b {}" é algum
outro tipo de limite.

[2] "\ n" corresponde a uma nova linha lógica. Perl converte entre "\ n" e o nativo do seu sistema operacional
caractere de nova linha ao ler ou gravar em arquivos de texto.

Exemplo

$ str = ~ / \ t /; # Corresponde se $ str contém uma guia (horizontal).

Controle caracteres

"\ c" é usado para denotar um caractere de controle; o caractere após "\ c" determina o
valor da construção. Por exemplo, o valor de "\ cA" é chr(1), e o valor de "\ cb"
is chr(2), etc. Os detalhes sangrentos estão em "Regexp Quote-Like Operators" em perlop. UMA
lista completa do que chr(1), etc. significa que para plataformas ASCII e EBCDIC está em "OPERADOR
DIFERENÇAS "em perlebcdic.

Observe que "\ c \" sozinho no final de uma expressão regular (ou string entre aspas duplas) não é
válido. A barra invertida deve ser seguida por outro caractere. Ou seja, "\ c \X" significa
"chr(28). 'X '" para todos os personagens X.

Para escrever código independente de plataforma, você deve usar "\ N {NOME}" em vez disso, como "\ N {ESCAPE}" ou
"\ N {U + 001B}", veja charnames.

Mnemônico: cpersonagem ontrol.

Exemplo

$ str = ~ / \ cK /; # Corresponde se $ str contém uma guia vertical (control-K).

Nomeado or numerada caracteres e personagem sequências

Os caracteres Unicode possuem um nome Unicode e um valor de ponto de código numérico (ordinal). Use o
"\ N {}" construção para especificar um caractere por qualquer um desses valores. Certas sequências de
os personagens também têm nomes.

Para especificar por nome, o nome do personagem ou sequência de caracteres fica entre as curvas
suspensórios.

Para especificar um caractere por ponto de código Unicode, use a forma "\ N {U +código apontar}", Onde código
ponto é um número em hexadecimal que fornece o ponto de código que o Unicode atribuiu
o personagem desejado. É comum, mas não obrigatório, usar zeros à esquerda para preencher o
número para 4 dígitos. Assim, "\ N {U + 0041}" significa "LETRA A MAIÚSCULA LATINA", e você raramente
veja-o escrito sem os dois zeros à esquerda. "\ N {U + 0041}" significa "A" mesmo em EBCDIC
máquinas (onde o valor ordinal de "A" não é 0x41).

É até possível dar seus próprios nomes aos personagens e sequências de caracteres. Para
detalhes, veja charnames.

(Há um formulário interno expandido que você pode ver na saída de depuração: "\ N {U +código
ponto.código apontar...}". O "..." significa qualquer número desses código pontos separados por pontos.
Isso representa a seqüência formada pelos personagens. Este é apenas um formulário interno,
sujeito a alterações, e você não deve tentar usá-lo sozinho.)

Mnemônico: Npersonagem conhecido.

Observe que um caractere ou sequência de caracteres expressa como um caractere nomeado ou numerado é
considerado um caractere sem significado especial pelo mecanismo de regex e corresponderá a "como
é".

Exemplo

$ str = ~ / \ N {PERSONAGEM TAILANDÊS ASSIM} /; # Corresponde ao caractere SO SO tailandês

use charnames 'Cirílico'; # Carrega nomes cirílicos.
$ str = ~ / \ N {ZHE} \ N {KA} /; # Corresponde a "ZHE" seguido por "KA".

Octal escapes

Existem duas formas de fuga octal. Cada um é usado para especificar um caractere por seu código
ponto especificado em notação octal.

Um formulário, disponível a partir do Perl 5.14, parece "\ o {...}", onde os pontos representam
um ou mais dígitos octais. Ele pode ser usado para qualquer caractere Unicode.

Foi introduzido para evitar os problemas potenciais com o outro formulário, disponível em todos
Perls. Essa forma consiste em uma barra invertida seguida por três dígitos octais. Um problema
com esta forma é que pode ser exatamente como uma referência anterior ao estilo antigo (ver
"Regras de desambiguação entre escapes octais de estilo antigo e referências anteriores" abaixo.) Você pode
evite isso tornando o primeiro dos três dígitos sempre zero, mas isso torna \ 077 o
maior ponto de código especificável.

Em alguns contextos, uma barra invertida seguida por dois ou até mesmo um dígito octal pode ser interpretada
como uma fuga octal, às vezes com um aviso, e por causa de alguns bugs, às vezes com
resultados surpreendentes. Além disso, se você estiver criando um regex a partir de trechos menores
concatenados, e você usa menos de três dígitos, o início de um trecho
pode ser interpretado como adição de dígitos ao final do trecho antes dele. Veja "Absoluto
referenciando "para mais discussão e exemplos do problema do snippet.

Observe que um caractere expresso como um escape octal é considerado um caractere sem
significado especial pelo mecanismo regex e corresponderá "como está".

Para resumir, o formulário "\ o {}" é sempre seguro para usar, e o outro formulário é seguro para usar para
o código aponta para \ 077 quando você usa exatamente três dígitos para especificá-los.

Mnemônico: 0ctal ou octtal.

Exemplos (assumindo uma plataforma ASCII)

$ str = "Perl";
$ str = ~ / \ o {120} /; # Match, "\ 120" é "P".
$ str = ~ / \ 120 /; # Mesmo.
$ str = ~ / \ o {120} + /; # Match, "\ 120" é "P",
# é repetido pelo menos uma vez.
$ str = ~ / \ 120 + /; # Mesmo.
$ str = ~ / P \ 053 /; # Sem correspondência, "\ 053" é "+" e entendido literalmente.
/ \ o {23073} / # Primeiro plano preto, fundo branco rosto sorridente.
/ \ o {4801234567} / # Gera um aviso e produz chr(4).

Regras de desambiguação entre escapes octais de estilo antigo e referências anteriores

Os escapes octais da forma "\ 000" fora das classes de caracteres entre colchetes podem entrar em conflito
com referências anteriores ao estilo antigo (consulte "Referência absoluta" abaixo). Ambos consistem em um
barra invertida seguida de números. Portanto, Perl tem que usar heurísticas para determinar se é um
referência anterior ou um escape octal. Perl usa as seguintes regras para eliminar a ambigüidade:

1. Se a barra invertida for seguida por um único dígito, é uma referência anterior.

2. Se o primeiro dígito após a barra invertida for 0, é um escape octal.

3. Se o número após a barra invertida for N (em decimal), e Perl já viu N
grupos de captura, Perl considera isso uma referência anterior. Caso contrário, considera que é um
fuga octal. Se N tiver mais de três dígitos, Perl leva apenas os três primeiros para o
escape octal; o resto é combinado como está.

meu $ pat = "(" x 999;
$ pat. = "a";
$ pat. = ")" x 999;
/ ^ ($ pat) \ 1000 $ /; # Corresponde a 'aa'; existem 1000 grupos de captura.
/ ^ $ pat \ 1000 $ /; # Corresponde a 'a @ 0'; existem 999 grupos de captura
# e \ 1000 são vistos como \ 100 (a '@') e um '0'.

Você pode forçar uma interpretação de referência anterior sempre usando o formulário "\ g {...}". Você pode
a força uma interpretação octal sempre usando a forma "\ o {...}", ou para números acima
a \ 077 (= 63 decimal), usando três dígitos, começando com "0".

Hexadecimal escapes

Como os escapes octais, existem duas formas de escapes hexadecimais, mas ambos começam com o
sequência "\ x". Isso é seguido por exatamente dois dígitos hexadecimais formando um
número ou um número hexadecimal de comprimento arbitrário cercado por chaves. o
o número hexadecimal é o ponto de código do caractere que você deseja expressar.

Observe que um caractere expresso como um desses escapes é considerado um caractere sem
significado especial pelo mecanismo regex e corresponderá "como está".

Mnemônico: elexdecimal.

Exemplos (assumindo uma plataforma ASCII)

$ str = "Perl";
$ str = ~ / \ x50 /; # Match, "\ x50" é "P".
$ str = ~ / \ x50 + /; # Match, "\ x50" é "P", é repetido pelo menos uma vez
$ str = ~ / P \ x2B /; # Sem correspondência, "\ x2B" é "+" e interpretado literalmente.

/ \ x {2603} \ x {2602} / # Boneco de neve com um guarda-chuva.
# O caractere Unicode 2603 é um boneco de neve,
# o caractere Unicode 2602 é um guarda-chuva.
/ \ x {263B} / # Cara negra sorridente.
/ \ x {263b} / # O mesmo, os dígitos hexadecimais A - F não diferenciam maiúsculas de minúsculas.

Modificadores
Uma série de sequências de barra invertida têm a ver com a mudança do caractere ou caracteres
seguindo eles. "\ l" irá minúsculas o caractere seguinte, enquanto "\ u" irá maiúsculas
(ou, mais precisamente, titlecase) o caractere que o segue. Eles fornecem funcionalidade
semelhante às funções "lcfirst" e "ucfirst".

Para maiúsculas ou minúsculas vários caracteres, pode-se usar "\ L" ou "\ U", que
irá minúsculas / maiúsculas todos os caracteres que os seguem, até o final do
padrão ou a próxima ocorrência de "\ E", o que ocorrer primeiro. Eles fornecem funcionalidade
semelhante ao que as funções "lc" e "uc" fornecem.

"\ Q" é usado para citar (desabilitar) metacaracteres padrão, até o próximo "\ E" ou o final de
o padrão. "\ Q" adiciona uma barra invertida a qualquer caractere que possa ter um significado especial para
Perl. No intervalo ASCII, ele cita cada caractere que não seja uma letra, dígito ou
sublinhado. Veja "quotemeta" em perlfunc para detalhes sobre o que é citado para não-ASCII
pontos de código. Usar isso garante que qualquer caractere entre "\ Q" e "\ E" será correspondido
literalmente, não é interpretado como um metacaractere pelo mecanismo de regex.

"\ F" pode ser usado para casefold todos os caracteres seguintes, até o próximo "\ E" ou o final de
o padrão. Ele fornece uma funcionalidade semelhante à função "fc".

Mnemônico: Lcaixa, Upor exemplo, Fcaso antigo, Quotemeta, Eª

Exemplos

$ sid = "sid";
$ greg = "GrEg";
$ miranda = "(Miranda)";
$ str = ~ / \ u $ sid /; # Corresponde a 'Sid'
$ str = ~ / \ L $ greg /; # Corresponde a 'greg'
$ str = ~ / \ Q $ miranda \ E /; # Corresponde a '(Miranda)', como se o padrão
# foi escrito como / \ (Miranda \) /

Personagem aulas
As expressões regulares Perl têm uma grande variedade de classes de caracteres. Alguns dos personagens
as classes são escritas como uma sequência de barra invertida. Vamos discuti-los brevemente aqui; cheio
detalhes das classes de personagens podem ser encontrados em perlrecharclass.

"\ w" é uma classe de caractere que corresponde a qualquer palavra caractere (letras, dígitos, Unicode
marcas e pontuação do conector (como o sublinhado)). "\ d" é uma classe de personagem que
corresponde a qualquer dígito decimal, enquanto a classe de caractere "\ s" corresponde a qualquer espaço em branco
personagem. Novas no perl 5.10.0 são as classes "\ h" e "\ v" que combinam horizontal e
caracteres de espaço em branco verticais.

O conjunto exato de caracteres correspondidos por "\ d", "\ s" e "\ w" varia dependendo de vários
pragma e modificadores de expressão regular. É possível restringir a correspondência ao
Intervalo ASCII usando o modificador de expressão regular "/ a". Veja perlrecharclass.

As variantes em maiúsculas ("\ W", "\ D", "\ S", "\ H" e "\ V") são classes de caracteres que
corresponder, respectivamente, a qualquer caractere que não seja um caractere de palavra, dígito, espaço em branco,
espaço em branco horizontal ou espaço em branco vertical.

Mnemônicos: wordem, digi, sritmo, hhorizontal, vvertical.

Unicode aulas

"\ pP" (onde "P" é uma única letra) e "\ p {Propriedade}" são usados ​​para corresponder a um caractere que
corresponde à propriedade Unicode fornecida; propriedades incluem coisas como "letra" ou "tailandês
caractere ". Capitalizando a sequência para" \ PP "e" \ P {Property} "faz com que a sequência corresponda
um caractere que não corresponde à propriedade Unicode fornecida. Para mais detalhes, veja
"Sequências de barra invertida" em perlrecharclass e "Propriedades de caracteres Unicode" em
perlunicocódigo.

Mnemônico: ppropriedade.

Referenciando
Se os parênteses de captura forem usados ​​em uma expressão regular, podemos nos referir à parte do
string de origem que foi correspondida e corresponde exatamente à mesma coisa. Existem três maneiras de
referindo-se a tal referência anterior: absolutamente, relativamente e por nome.

absoluto referência

Qualquer um "\ gN" (começando em Perl 5.10.0) ou "\N" (estilo antigo) onde N é positivo
(sem sinal) número decimal de qualquer comprimento é uma referência absoluta para um grupo de captura.

N refere-se ao enésimo conjunto de parênteses, portanto "\ gN" refere-se a tudo o que foi correspondido por
esse conjunto de parênteses. Assim, "\ g1" se refere ao primeiro grupo de captura na regex.

O "\ gN" formulário pode ser escrito de forma equivalente como "\ g {N} " que evita ambigüidade ao construir
uma regex concatenando strings mais curtas. Caso contrário, se você tivesse uma regex "qr / $ a $ b /" e $ a
continha "\ g1" e $ b continha "37", você obteria "/ \ g137 /" que provavelmente não é o que
você pretendia.

No "\N" Formato, N não deve começar com "0", e deve haver pelo menos N capturando
grupos, ou então N é considerado um escape octal (mas algo como "\ 18" é o mesmo que
"\ 0018"; ou seja, o escape octal "\ 001" seguido por um dígito literal "8").

Mnemônico: ggrupo.

Exemplos

/ (\ w +) \ g1 /; # Encontra uma palavra duplicada (por exemplo, "gato gato").
/ (\ w +) \ 1 /; # Mesma coisa; escrito em estilo antigo.
/(.)(.)\g2\g1/; # Corresponde a um palíndromo de quatro letras (por exemplo, "ABBA").

Parente referência

"\ g-N" (começando em Perl 5.10.0) é usado para endereçamento relativo. (Pode ser escrito como
"\ g {-N".) Refere-se ao Nº grupo antes do "\ g {-N} ".

A grande vantagem deste formulário é que ele torna muito mais fácil escrever padrões com
referências que podem ser interpoladas em padrões maiores, mesmo se o padrão maior também
contém grupos de captura.

Exemplos

/ (A) # Grupo 1
(# Grupo 2
(B) # Grupo 3
\ g {-1} # Refere-se ao grupo 3 (B)
\ g {-3} # Refere-se ao grupo 1 (A)
)
/ x; # Corresponde a "ABBA".

meu $ qr = qr /(.)(.)\g{-2}\g{-1}/; # Corresponde a 'abab', 'cdcd', etc.
/ $ qr $ qr / # Corresponde a 'ababcdcd'.

Nomeado referência

"\ g {nome}" (começando em Perl 5.10.0) pode ser usado para fazer referência a um grupo de captura nomeado,
dispensando completamente a necessidade de pensar nas posições do buffer de captura.

Para ser compatível com expressões regulares .Net, "\ g {nome}" também pode ser escrito como
"\ k {nome}", "\ k "ou" \ k'name '".

Para evitar qualquer ambiguidade, nome não deve começar com um dígito nem conter um hífen.

Exemplos

/ (? \ w +) \ g {palavra} / # Encontra uma palavra duplicada, (por exemplo, "gato gato")
/ (? \ w +) \ k {palavra} / # Idem.
/ (? \ w +) \ k / # Mesmo.
/ (? .) (? .) \ g {letter1} \ g {letter2} /
# Corresponde a um palíndromo de quatro letras (por exemplo, "ABBA")

Afirmações
Asserções são condições que precisam ser verdadeiras; eles realmente não combinam com partes do
substring. Existem seis asserções que são escritas como sequências de barra invertida.

\ A "\ A" corresponde apenas ao início da string. Se o modificador "/ m" não for usado,
então "/ \ A /" é equivalente a "/ ^ /". No entanto, se o modificador "/ m" for usado, então "/ ^ /"
corresponde a novas linhas internas, mas o significado de "/ \ A /" não é alterado pelo "/ m"
modificador. "\ A" corresponde ao início da string, independentemente se o "/ m"
modificador é usado.

\ z, \ Z
"\ z" e "\ Z" correspondem ao final da string. Se o modificador "/ m" não for usado, então
"/ \ Z /" é equivalente a "/ $ /"; ou seja, corresponde ao final da string, ou um
antes da nova linha no final da string. Se o modificador "/ m" for usado, então "/ $ /"
corresponde a novas linhas internas, mas o significado de "/ \ Z /" não é alterado pelo "/ m"
modificador. "\ Z" corresponde ao final da string (ou logo antes de uma nova linha à direita)
independentemente se o modificador "/ m" é usado.

"\ z" é exatamente como "\ Z", exceto que não corresponde antes de uma nova linha final. "\ z"
corresponde apenas ao final da string, independentemente dos modificadores usados, e não apenas
antes de uma nova linha. É como ancorar a partida na verdadeira extremidade da corda sob
todas as condições.

\ G "\ G" é normalmente usado apenas em combinação com o modificador "/ g". Se o modificador "/ g"
é usado e a correspondência é feita no contexto escalar, o Perl lembra onde na fonte
string a última partida terminou, e na próxima vez, vai começar a partida de onde
terminou na vez anterior.

"\ G" corresponde ao ponto onde a correspondência anterior naquela string terminou, ou o início
dessa string se não houver correspondência anterior.

Mnemônico: Global.

\ b {}, \ b, \ B {}, \ B
"\ b {...}", disponível a partir da v5.22, corresponde a um limite (entre dois caracteres, ou
antes do primeiro caractere da string ou após o caractere final da string)
com base nas regras Unicode para o tipo de limite especificado entre colchetes. o
os tipos de fronteira atualmente conhecidos são fornecidos alguns parágrafos abaixo. "\ B {...}" corresponde a
qualquer lugar entre os caracteres onde "\ b {...}" do mesmo tipo não corresponde.

"\ b" quando não seguido imediatamente por um "{" corresponde em qualquer lugar entre uma palavra
(algo correspondido por "\ w") e um caractere não-word ("\ W"); "\ B" quando não imediatamente
seguido por um "{" corresponde em qualquer lugar entre os caracteres onde "\ b" não corresponde.
Para obter uma melhor correspondência de palavras de texto em linguagem natural, consulte \ b {wb} abaixo.

"\ b" e "\ B" presumem que há um caractere não-palavra antes do início e depois do
fim da string de origem; então "\ b" irá corresponder ao início (ou final) da fonte
string se a string de origem começar (ou terminar) com um caractere de palavra. Caso contrário, "\ B"
vai combinar.

Não use algo como "\ b = head \ d \ b" e espere que corresponda ao início de um
linha. Não pode, porque para haver uma fronteira antes da não palavra "=", há
deve ser um caractere de palavra imediatamente anterior. Limites "\ b" e "\ B" simples
determinações procuram apenas caracteres de palavras, não para caracteres não-verbais nem para
string termina. Pode ser útil entender como <\ b> e <\ B> funcionam, equiparando-os a
segue:

\ b realmente significa (?: (? <= \ w) (?! \ w) | (?
\ B realmente significa (?: (? <= \ W) (? = \ W) | (?

Em contraste, "\ b {...}" e "\ B {...}" podem ou não corresponder no início e no final de
a linha, dependendo do tipo de limite. Eles implementam o padrão Unicode
limites, especificados emhttp://www.unicode.org/reports/tr29/>. Os tipos de fronteira
atualmente disponíveis são:

"\ b {gcb}" ou "\ b {g}"
Isso corresponde a um "limite de cluster de grapheme" Unicode. (Na verdade, Perl sempre usa
o agrupamento de grafemas "estendido" melhorado). Estes são explicados abaixo em
"" \ X "". Na verdade, "\ X" é outra maneira de obter a mesma funcionalidade. Isto é
equivalente a "/.+? \ b {gcb} / ". Use o que for mais conveniente para o seu
situação.

"\ b {sb}"
Isso corresponde a um "limite de frase" Unicode. Isso é uma ajuda para a análise natural
frases de linguagem. Dá resultados bons, mas imperfeitos. Por exemplo, ele pensa
que "Sr. Smith" tem duas sentenças. Mais detalhes estão em
<http://www.unicode.org/reports/tr29/>. Observe também que ele pensa que qualquer coisa
corresponder a "\ R" (exceto alimentação de formulário e tabulação vertical) é um limite de frase.
"\ b {sb}" funciona com texto projetado para processadores de texto que quebram as linhas
automaticamente para exibição, mas os limites de linha codificados são considerados
essencialmente o final dos blocos de texto (parágrafos na verdade) e, portanto, o final do
sentencias. "\ b {sb}" não funciona bem com texto contendo novas linhas incorporadas, como
o texto fonte do documento que você está lendo. Esse texto precisa ser
pré-processado para se livrar dos separadores de linha antes de procurar a frase
limites. Algumas pessoas veem isso como um bug no padrão Unicode, e este
o comportamento está sujeito a mudanças nas versões futuras do Perl.

"\ b {wb}"
Isso corresponde a um "limite de palavra" Unicode. Isso dá melhor (embora não seja perfeito)
resulta para o processamento de linguagem natural do que o simples "\ b" (sem colchetes).
Por exemplo, ele entende que apóstrofos podem estar no meio de palavras e
que os parênteses não são (veja os exemplos abaixo). Mais detalhes estão em
<http://www.unicode.org/reports/tr29/>.

É importante perceber quando você usa esses limites Unicode, que você está tomando
um risco de que uma versão futura do Perl que contém uma versão posterior do Unicode
Padrão não funcionará exatamente da mesma maneira que funcionava quando seu código foi escrito.
Essas regras não são consideradas estáveis ​​e estão um pouco mais sujeitas a alterações
do que o resto do padrão. O Unicode reserva-se o direito de alterá-los à vontade, e
Perl se reserva o direito de atualizar sua implementação de acordo com as novas regras do Unicode. No
passado, algumas mudanças foram porque novos personagens foram adicionados ao padrão
que têm características diferentes de todos os personagens anteriores, então novas regras são
formulado para manuseá-los. Isso não deve causar nenhuma compatibilidade com versões anteriores
questões. Mas algumas mudanças mudaram o tratamento de personagens existentes porque
o Comitê Técnico Unicode decidiu que a mudança é garantida para qualquer
razão. Isso pode ser para consertar um bug ou porque eles acham que melhores resultados são obtidos
com a nova regra.

Também é importante perceber que essas são definições de limite padrão e que
implementações podem desejar adaptar os resultados para fins e locais específicos.

Unicode define um quarto tipo de limite, acessível por meio de Unicode :: LineBreak
módulo.

Mnemônico: bundary.

Exemplos

"cat" = ~ / \ Acat /; # Corresponder.
"gato" = ~ / gato \ Z /; # Corresponder.
"gato \ n" = ~ / gato \ Z /; # Corresponder.
"cat \ n" = ~ / cat \ z /; # Sem correspondência.

"cat" = ~ / \ bcat \ b /; # Fósforos.
"gatos" = ~ / \ bcat \ b /; # Sem correspondência.
"cat" = ~ / \ bcat \ B /; # Sem correspondência.
"gatos" = ~ / \ bcat \ B /; # Corresponder.

while ("cachorro gato" = ~ / (\ w +) / g) {
imprimir $ 1; # Imprime 'catdog'
}
while ("cachorro gato" = ~ / \ G (\ w +) / g) {
imprimir $ 1; # Imprime 'gato'
}

my $ s = "Ele disse, \" Pi 3.14? (Não tenho certeza).\"";
imprimir junção ("|", $ s = ~ m / (. +? \ b) / xg), "\ n";
imprimir junção ("|", $ s = ~ m / (. +? \ b {wb}) / xg), "\ n";
impressões
He | | disse |, "| Está | | pi | | 3 |. | 14 |? (| I | '| m | | não | | certo
He | | disse |, | | "| É | | pi | | 3.14 |? | | (| Estou | | não | | seguro |) |. |"

misc
Aqui, documentamos as sequências de barra invertida que não se enquadram em nenhuma das categorias acima.
Estes são:

\ C (obsoleto.) "\ C" sempre corresponde a um único octeto, mesmo se a string de origem estiver codificada
no formato UTF-8, e o caractere a ser correspondido é um caractere multi-octeto. Isto é
muito perigoso, porque viola a abstração lógica do personagem e pode causar
Seqüências UTF-8 ficarem malformadas.

Use "utf8 :: encode ()" ao invés.

Mnemônico: oCtet.

\ K Isso apareceu no perl 5.10.0. Qualquer coisa correspondente à esquerda de "\ K" não está incluída em $ &, e
não será substituído se o padrão for usado em uma substituição. Isso permite que você escreva
"s / PAT1 \ K PAT2 / REPL / x" em vez de "s / (PAT1) PAT2 / $ {1} REPL / x" ou "s / (? <= PAT1)
PAT2 / REPL / x ".

Mnemônico: Keep.

\ N Este recurso, disponível a partir da v5.12, corresponde a qualquer caractere que seja não a
nova linha. É uma abreviação para escrever "[^ \ n]" e é idêntico ao "."
meta-símbolo, exceto sob a bandeira "/ s", que muda o significado de ".", mas não
"\ N".

Observe que "\ N {...}" pode significar um caractere nomeado ou numerado.

Mnemônico: Complemento de \n.

\ R "\ R" corresponde a um genérico nova linha; ou seja, qualquer coisa considerada uma sequência de quebra de linha por
Unicode. Isso inclui todos os caracteres correspondidos por "\ v" (espaço em branco vertical), e o
sequência de vários caracteres "\ x0D \ x0A" (retorno de carro seguido por uma alimentação de linha,
às vezes chamada de nova linha de rede; é a sequência de fim de linha usada na Microsoft
arquivos de texto abertos em modo binário). "\ R" é equivalente a "(?> \ X0D \ x0A | \ v)". (O
o motivo pelo qual não retrocede é que a sequência é considerada inseparável. Este
significa que

"\ x0D \ x0A" = ~ / ^ \ R \ x0A $ / # Sem correspondência

falha, porque o "\ R" corresponde a toda a string e não retrocede para corresponder apenas
o "\ x0D".) Uma vez que "\ R" pode corresponder a uma sequência de mais de um caractere, não pode ser
colocado dentro de uma classe de caractere entre colchetes; "/ [\ R] /" é um erro; use "\ v" ao invés. "\ R"
foi introduzido no perl 5.10.0.

Observe que isso não respeita nenhuma localidade que possa estar em vigor; Corresponde
de acordo com o conjunto de caracteres nativos da plataforma.

Mnemônico: nenhum realmente. "\ R" foi escolhido porque o PCRE já usa "\ R" e mais
importante porque o Unicode recomenda esse metacaractere de expressão regular, e
sugere "\ R" como sua notação.

\ X Corresponde a um Unicode opção grafema cacho.

"\ X" corresponde perfeitamente ao que o uso normal (não-Unicode-programador) consideraria um
único personagem. Por exemplo, considere um G com algum tipo de marca diacrítica, como
como uma flecha. Não existe tal caractere único em Unicode, mas um pode ser composto por
usando um G seguido por um Unicode "COMBINANDO A SETA PARA CIMA ABAIXO", e seria
exibido por software compatível com Unicode como se fosse um único caractere.

A correspondência é gananciosa e sem retrocesso, de modo que o cluster nunca é dividido em
componentes menores.

Veja também "\ b {gcb}".

Mnemônico: eXcaractere Unicode tendido.

Exemplos

$ str = ~ s / foo \ Kbar / baz / g; # Altere qualquer 'barra' seguindo um 'foo' para 'baz'
$ str = ~ s / (.) \ K \ g1 // g; # Exclua caracteres duplicados.

"\ n" = ~ / ^ \ R $ /; # Match, \ n é uma nova linha genérica.
"\ r" = ~ / ^ \ R $ /; # Match, \ r é uma nova linha genérica.
"\ r \ n" = ~ / ^ \ R $ /; # Match, \ r \ n é uma nova linha genérica.

"P \ x {307}" = ~ / ^ \ X $ / # \ X corresponde a um P com um ponto acima.

Use perlrebackslash online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    Piso de escritório
    Piso de escritório
    OfficeFloor fornece inversão de
    controle de acoplamento, com sua: - dependência
    injeção - injeção de continuação -
    injeção de thread Para mais informações
    visite a...
    Baixar OfficeFloor
  • 2
    Kit Div
    Kit Div
    DivKit é um servidor de código aberto baseado em
    Estrutura de IU (SDUI). Ele permite que você
    distribuir atualizações provenientes do servidor para
    diferentes versões de aplicativos. Além disso, pode ser
    usado para ...
    Baixe o DivKit
  • 3
    subconversor
    subconversor
    Utilitário para converter entre vários
    formato de assinatura. Usuários do Shadowrocket
    deve usar ss, ssr ou v2ray como alvo.
    Você pode adicionar &remark= a
    HT curtido no Telegram...
    Baixar subconversor
  • 4
    SWASH
    SWASH
    SWASH é um numérico de uso geral
    ferramenta para simular instabilidade,
    não hidrostático, superfície livre,
    fluxo rotacional e fenômenos de transporte
    em águas costeiras como ...
    Baixar SWASH
  • 5
    VBA-M (arquivado - agora no Github)
    VBA-M (arquivado - agora no Github)
    O projeto mudou para
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Recursos: Criação de truques, salvar estados multi
    sistema, suporta gba, gbc, gb, sgb,
    sgb2Tu...
    Baixar VBA-M (arquivado - agora no Github)
  • 6
    Stacer
    Stacer
    Otimizador e monitoramento de sistema Linux
    Repositório Github:
    https://github.com/oguzhaninan/Stacer.
    Público: usuários finais / desktop. Do utilizador
    interface: Qt. Programação L...
    Baixar Stacer
  • Mais "

Comandos Linux

Ad