diff options
Diffstat (limited to 'tde-i18n-pt_BR/docs/kdebase/kate/regular-expressions.docbook')
-rw-r--r-- | tde-i18n-pt_BR/docs/kdebase/kate/regular-expressions.docbook | 1216 |
1 files changed, 0 insertions, 1216 deletions
diff --git a/tde-i18n-pt_BR/docs/kdebase/kate/regular-expressions.docbook b/tde-i18n-pt_BR/docs/kdebase/kate/regular-expressions.docbook deleted file mode 100644 index ab1e94cad15..00000000000 --- a/tde-i18n-pt_BR/docs/kdebase/kate/regular-expressions.docbook +++ /dev/null @@ -1,1216 +0,0 @@ -<appendix id="regular-expressions"> -<appendixinfo> -<authorgroup> -<author ->&Anders.Lund; &Anders.Lund.mail;</author> -<othercredit role="translator" -><firstname ->Lisiane</firstname -><surname ->Sztoltz</surname -><affiliation -><address -><email ->lisiane@conectiva.com.br</email -></address -></affiliation -><contrib ->Tradução</contrib -></othercredit -> -</authorgroup> -</appendixinfo> - -<title ->Expressões Regulares</title> - -<synopsis ->Este Apêndice contém uma breve mas suficiente introdução sobre o -mundo das <emphasis ->expressões regulares</emphasis ->. Ele documenta -expressões regulares na forma disponível dentro do &kate;, que -não é compatível com as expressões regulares do Perl, ou de -outros comandos como o <command ->grep</command ->.</synopsis> - -<sect1> - -<title ->Introdução</title> - -<para ->As <emphasis ->Expressões Regulares</emphasis -> nos fornecem uma maneira de descrever alguns possíveis conteúdos de uma string de texto, de modo a ser entendido por um pedaço de software, e assim, ele pode investigar se um texto combina, e também no caso de aplicações avançadas, com o objetivo de salvar pedaços ou o texto que combina com a busca.</para> - -<para ->Um exemplo. Digamos que você deseja buscar, em um texto, por parágrafos que iniciam com um desses nomes: <quote ->Henrik</quote -> ou<quote ->Pernille </quote ->, seguido por alguma forma do verbo <quote ->dizer</quote ->.</para> - -<para ->Em uma busca normal, você iniciaria com o primeiro nome, <quote ->Henrik </quote ->, talvez seguido por um <quote ->di</quote ->, como isto: <userinput -> Henrik di</userinput ->, e ao procurar por combinações, teria que descartar aquelas que não estão do início de uma parágrafo, bem como aquelas em que a palavra inicia com as letras <quote ->di</quote -> como <quote ->disse</quote ->, ou <quote ->diz</quote ->, e assim por diante. E então, isto causa a repetição de tudo isto com o próximo nome...</para> - -<para ->Com as Expressões Regulares, aquela tarefa poderia ser cumprida com uma única busca, e com um grau maior de precisão.</para> - -<para ->Para obter isto, as Expressões Regulares definem regras para expressar em detalhes uma generalização de uma string que será procurada. Podemos literalmente expressar nosso exemplo assim: <quote -> Uma linha iniciada com <quote ->Henrik</quote -> ou <quote ->Pernille </quote -> (possivelmente seguido por 4 caracteres em branco ou tabs) seguido por um espaço em branco, seguido por um <quote ->di</quote -> e então, um <quote ->iz</quote -> ou <quote ->sse</quote -></quote ->, que poderia ser colocado na seguinte expressão regular:</para -> <para -><userinput ->^[ \t]{0,4}(Henrik|Pernille) di(sse|z)</userinput -></para> - -<para ->O exemplo anterior demonstra todos os quatro conceitos principais das Expressões Regulares modernas, chamados:</para> - -<itemizedlist> -<listitem -><para ->Padrões</para -></listitem> -<listitem -><para ->Afirmações</para -></listitem> -<listitem -><para ->Quantificadores</para -></listitem> -<listitem -><para ->Referências para trás</para -></listitem> -</itemizedlist> - -<para ->O acento circunflexo (<literal ->^</literal ->) no início da expressão é uma afirmação, sendo verdade somente se a string relacionada estiver no início de uma linha.</para> - -<para ->As strings <literal ->[ \t]</literal -> e <literal ->(Henrik|Pernille) di(sse|z)</literal -> são padrões. A primeira é uma <emphasis ->classe de caractere </emphasis -> que combina ou com um espaço em branco ou com um caractere de tabulação (horizontal); o outro padrão contém primeiramente um sub-padrão que combina ou com <literal ->Henrik</literal -> <emphasis ->ou com </emphasis -> <literal ->Pernille</literal ->. Em seguida, vem um pedaço que corresponde exatamente com a string <literal ->di</literal -> e, finalmente segue um sub-padrão que combina com <literal ->sse</literal -> <emphasis ->ou</emphasis -> com <literal ->z</literal ->.</para> - -<para ->A string <literal ->{0,4}</literal -> é um quantificado dizendo <quote ->qualquer número de 0 até 4 da string anterior</quote ->.</para> - -<para ->Por causa do suporte ao conceito de <emphasis ->referência para trás </emphasis -> das expressões regulares, é economizado uma parte inteira combinada da string, bem como os sub-padrões incluídos em parênteses; fornecidos alguns tipos de acesso para aquelas referências, podemos obter nossos meios de encontrar a string inteira (ao se procurar um documento de texto em um editor com uma expressão regular, o que é marcado freqüentemente) ou o nome encontrado, ou a última parte do verbo.</para> - -<para ->Toda junta, a expressão procurará o que você desejar que ela procure, e somente ali.</para> - -<para ->As seções seguintes descreverão em detalhes como construir e usar padrões, classes de caracteres, afirmações, quantificadores e referências para trás, e a seção final fornecerá alguns exemplos úteis.</para> - -</sect1> - -<sect1 id="regex-patterns"> - -<title ->Padrões</title> - -<para ->Padrões consistem de strings literais e classes de caracteres, e podem conter sub-padrões, que são padrões cercados por parênteses.</para> - -<sect2> -<title ->Escapando caracteres</title> - -<para ->Em padrões, bem como em classes de caracteres, alguns caracteres possuem um significado especial. Para combinar literalmente quaisquer um destes caracteres, eles devem ser marcados ou <emphasis -> escapados</emphasis ->, para deixar com que o software saiba que deve interpretar tais caracteres de maneira literal.</para> - -<para ->Isto é feito anexando no início do caractere uma barra invertida (<literal ->\</literal ->).</para> - - -<para ->O software de expressão regular silenciosamente ignorará, escapando um caractere que não possui nenhum significado especial no contexto; assim, escapar, por exemplo, um <quote ->j</quote -> (<userinput ->\j </userinput ->) é seguro. Se você tiver dúvidas se um caractere possui significado especial, você pode, portanto, escapá-lo seguramente.</para> - -<para ->Para escapar a própria barra invertida, para combinar literalmente, você escreveria <userinput ->\\</userinput ->.</para> - -</sect2> - -<sect2> -<title ->Classes de Caracteres e abreviações</title> - -<para ->Uma <emphasis ->classe de caractere</emphasis -> é uma expressão que combina um dos caracteres de um conjunto definido. Em Expressões Regulares, as classes de caracteres são definidas colocado-se os caracteres legais em uma classe com colchetes (<literal ->[]</literal ->), ou usando uma das classes abreviadas descritas abaixo.</para> - -<para ->Classes de caracteres simples contém um ou mais caracteres literais, como por exemplo <userinput ->[abc]</userinput -> (combinando com uma das letras: <quote ->a</quote ->, <quote ->b</quote -> ou <quote ->c</quote ->) ou <userinput ->[0123456789]</userinput -> (combinando com qualquer dígito).</para> - -<para ->Pela ordem lógica das letras e dígitos, você pode abreviá-los especificando intervalos com eles: <userinput ->[a-c]</userinput -> é igual a <userinput ->[abc]</userinput -> e <userinput ->[0-9]</userinput -> é igual a <userinput ->[0123456789]</userinput ->. Combinando estas construções, o exemplo <userinput ->[a-fynot1-38]</userinput -> é completamente legal (ele combinaria com um destes: <quote ->a</quote ->,<quote ->b</quote ->,<quote ->c </quote ->,<quote ->d</quote ->, <quote ->e</quote ->,<quote ->f</quote ->, <quote ->y</quote ->, <quote ->n</quote ->,<quote ->o</quote ->,<quote ->t </quote ->, <quote ->1</quote ->, <quote ->2</quote ->,<quote ->3</quote -> ou com <quote ->8</quote ->).</para> - -<para ->Como as letras maiúsculas são diferentes de minúsculas em expressões, para criar uma classe de caracteres que não diferenciasse maiúsculas de minúsculas, combinando por exemplo com <quote ->a</quote -> ou <quote ->b</quote ->, em qualquer caso, você precisaria escrever <userinput ->[aAbB]</userinput ->.</para> - -<para ->Isto faz com que seja possível criar uma classe <quote ->negativa</quote -> combinando com <quote ->tudo menos aquilo</quote ->. Para fazer isto, coloque o acento circunflexo (<literal ->^</literal ->) no início da classe: </para> - -<para -><userinput ->[^abc]</userinput -> combinará com qualquer caractere <emphasis ->menos com </emphasis -> <quote ->a</quote ->, <quote ->b</quote -> ou <quote ->c</quote ->.</para> - -<para ->Além disso, para caracteres literais, algumas abreviações são definidas, tornando a vida um pouco mais fácil: <variablelist> - -<varlistentry> -<term -><userinput ->\a</userinput -></term> -<listitem -><para ->Isto combina com o caractere <acronym ->ASCII</acronym -> da campainha (BEL, 0x07).</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\f</userinput -></term> -<listitem -><para ->Isto combina com o caractere <acronym ->ASCII</acronym -> de nova página (FF, 0x0C).</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\n</userinput -></term> -<listitem -><para ->Isto combina com o caractere <acronym ->ASCII</acronym -> de nova linha (LF, 0x0A, nova linha do Unix).</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\r</userinput -></term> -<listitem -><para ->Isto combina com o caractere <acronym ->ASCII</acronym -> de retorno de carro (CR, 0x0D).</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\t</userinput -></term> -<listitem -><para ->Isto combina com o caractere <acronym ->ASCII</acronym -> de tabulação horizontal (HT, 0x09).</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\v</userinput -></term> -<listitem -><para ->Isto combina com o caractere <acronym ->ASCII</acronym -> de tabulação vertical (VT, 0x0B).</para -></listitem> -</varlistentry> -<varlistentry> -<term -><userinput ->\xhhhh</userinput -></term> - -<listitem -><para ->Isto combina com o caractere Unicode correspondente ao número hexadecimal hhhh (entre 0x0000 e 0xFFFF). \0ooo (&ie;, \zero ooo) combina com o caractere <acronym ->ASCII</acronym ->/Latin-1 correspondente ao número octal ooo (entre 0 e 0377).</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->.</userinput -> (ponto)</term> -<listitem -><para ->Isto combina com qualquer caractere (incluindo nova linha).</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\d</userinput -></term> -<listitem -><para ->Isto combina com um dígito. É igual a <literal ->[0-9]</literal -></para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\D</userinput -></term> -<listitem -><para ->Isto combina com um caractere que não seja dígito. Igual a <literal -> [^0-9]</literal -> ou <literal ->[^\d]</literal -></para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\s</userinput -></term> -<listitem -><para ->Isto combina com um caractere em branco. Praticamente igual a <literal ->[\t\n\r]</literal -></para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\S</userinput -></term> -<listitem -><para ->Combina com o que não seja espaço em branco. Praticamente igual a <literal ->[^\t\r\n]</literal ->, e igual a <literal ->[^\s]</literal -></para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\w</userinput -></term> -<listitem -><para ->Combina com quaisquer <quote ->caractere da palavra</quote ->, neste caso quaisquer letras ou dígitos. Note que o caractere de sublinhado (ou underscore - <literal ->_</literal ->) não combina, como é o caso com expressões regulares do Perl. Igual a <literal ->[a-zA-Z0-9]</literal -></para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\W</userinput -></term> -<listitem -><para ->Combina com qualquer caractere diferente de palavra - qualquer coisa menos letras ou números. Igual a <literal ->[^a-zA-Z0-9]</literal -> ou <literal ->[^\w]</literal -></para -></listitem> -</varlistentry> - - -</variablelist> - -</para> - -<para ->As classes abreviadas pode ser colocadas dentro de classes personalizadas, como por exemplo: para combinar um caractere de palavra, um em branco ou um ponto, você poderia escrever <userinput ->[\w\.]</userinput -></para -> - -<note -> <para ->A notação POSIX de classes, <userinput ->[:<nome da classe>:]</userinput ->, atualmente não é suportada.</para -> </note> - -<sect3> -<title ->Caracteres com significado especial dentro das classes</title> - -<para ->Os seguintes caracteres possuem um significado especial dentro da construção <quote ->[]</quote -> de classes de caractere, e deve ser escapado para ser literalmente incluído em uma classe:</para> - -<variablelist> -<varlistentry> -<term -><userinput ->]</userinput -></term> -<listitem -><para ->Finaliza a classe. Deve ser escapado, a menos que este caractere seja o primeiro da classe (pode ser seguido por um circunflexo não-escapado)</para -></listitem> -</varlistentry> -<varlistentry> -<term -><userinput ->^</userinput -> (circunflexo)</term> -<listitem -><para ->Denota uma classe negativa, se for o primeiro caractere. Deve ser escapado para combinar literalmente, se for o primeiro caractere da classe.</para -></listitem -> -</varlistentry> -<varlistentry> -<term -><userinput ->-</userinput -> (hífen)</term> -<listitem -><para ->Denota um intervalo lógico. Deve sempre ser escapado dentro de uma classe.</para -></listitem> -</varlistentry> -<varlistentry> -<term -><userinput ->\</userinput -> (barra invertida)</term> -<listitem -><para ->O caractere de escape. Deve sempre ser escapado.</para -></listitem> -</varlistentry> - -</variablelist> - -</sect3> - -</sect2> - -<sect2> - -<title ->Alternativas: combinando <quote ->um deles</quote -></title> - -<para ->Se você deseja combinar um de um conjunto de padrões alternativos, pode separá-los com o caractere de barra vertical: <literal ->|</literal -></para> - -<para ->Por exemplo: para encontrar a palavra <quote ->John</quote -> ou a palavra <quote ->Harry</quote ->, você usaria uma expressão do tipo <userinput ->John|Harry</userinput ->.</para> - -</sect2> - -<sect2> - -<title ->Sub-padrões</title> - -<para -><emphasis ->Sub-padrões</emphasis -> são padrões fechados entre parênteses, e possuem vários usos no mundo das expressões regulares.</para> - -<sect3> - -<title ->Especificando alternativas</title> - -<para ->Você pode usar sub-padrões para agrupar um conjunto de alternativas dentro de um padrão maior. As alternativas são separadas pelo caractere <quote ->|</quote -> (barra vertical).</para> - -<para ->Por exemplo: para procurar uma das palavras <quote ->int</quote ->, <quote ->float</quote -> ou <quote ->double</quote ->, você poderia usar o padrão <userinput ->int|float|double</userinput ->. Se você deseja somente encontrar delas, se for seguida por algum espaço em branco e então algumas letras, coloque as alternativas dentro de um sub-padrão: <userinput ->(int|float|double)\s+\w+</userinput ->.</para> - -</sect3> - -<sect3> - -<title ->Capturando texto relacionado (referências anteriores)</title> - -<para ->Se você deseja usar uma referência anterior, use um sub-padrão para ter a parte desejada do padrão lembrada.</para> - -<para ->Por exemplo: se você deseja encontras duas ocorrências da mesma palavra, separadas por vírgula, e possivelmente algum espaço em branco, poderia escrever: <userinput ->(\w+),\s*\1</userinput ->. O sub-padrão <literal ->\w+</literal -> procuraria pelo pedaço dos caracteres da palavra, e a expressão inteira combinaria se aquelas forem separadas por uma vírgula, 0 ou mais espaços em branco, e então, um pedaço igual de caracteres da palavra (a string <literal ->\1</literal -> referencia <emphasis ->o primeiro sub-padrão entre os parênteses</emphasis ->).</para> - -<!-- <para ->See also <link linkend="backreferences" ->Back references</link ->.</para -> --> - -</sect3> - -<sect3 id="lookahead-assertions"> -<title ->Afirmações Adiante</title> - -<para ->Uma afirmação do tipo adiante é um sub-padrão, iniciando com <literal ->?=</literal -> ou <literal ->?!</literal ->.</para> - -<para ->Por exemplo: para combinar a string literal <quote ->Bill</quote -> , mas somente seguida por <quote -> Gates</quote ->, você poderia usar esta expressão: <userinput ->Bill(?! Gates)</userinput -> (isto procuraria por <quote ->Bill Clinton</quote ->, bem como por <quote ->Billy the kid</quote ->, mas ele silenciosamente ignoraria as outras combinações).</para> - -<para ->Os sub-padrões usados para as afirmações não são capturados.</para> - -<para ->Veja também em <link linkend="assertions" ->Afirmações</link -></para> - -</sect3> - -</sect2> - -<sect2 id="special-characters-in-patterns"> -<title ->Caracteres com significado especial dentro de padrões</title> - -<para ->Os seguintes caracteres possuem um significado especial dentro de um padrão, e devem ser escapados, caso você deseje procurá-los literalmente: <variablelist> - -<varlistentry> -<term -><userinput ->\</userinput -> (barra invertida)</term> -<listitem -><para ->O caractere de escape.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->^</userinput -> (circunflexo)</term> -<listitem -><para ->Combina com o início da string.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->$</userinput -></term> -<listitem -><para ->Combina com o fim da string.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->()</userinput -> (parênteses esquerdo e direito)</term> -<listitem -><para ->Denota sub-padrões.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->{}</userinput -> (abre e fecha chaves)</term> -<listitem -><para ->Denota quantificadores numéricos.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->[]</userinput -> (abre e fecha colchetes)</term> -<listitem -><para ->Denota classes de caracteres.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->]</userinput -> (barra vertical)</term> -<listitem -><para ->OR lógico. Alternativas separadas.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->+</userinput -> (sinal de mais)</term> -<listitem -><para ->Quantificador, 1 ou mais.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->*</userinput -> (asterisco)</term> -<listitem -><para ->Quantificador, 0 ou mais.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->?</userinput -> (ponto de interrogação)</term> -<listitem -><para ->Um caractere opcional. Pode ser interpretado como um quantificador, 0 ou 1.</para -></listitem> -</varlistentry> - -</variablelist> - -</para> - -</sect2> - -</sect1> - -<sect1 id="quantifiers"> -<title ->Quantificadores</title> - -<para -><emphasis ->Quantificadores</emphasis -> permitem que uma expressão regular combine dentro de um número especificado ou de um intervalo de números, com um caractere, uma classe de caracteres ou um sub-padrão.</para> - -<para ->Os quantificadores estão dentro de chaves (<literal ->{</literal -> e <literal ->} </literal ->), e possuem como forma geral: <literal ->{[mínimo-ocorrências][, [máximo-ocorrências]]}</literal -> </para> - -<para ->O uso é melhor explicado através do exemplo: <variablelist> - -<varlistentry> -<term -><userinput ->{1}</userinput -></term> -<listitem -><para ->Exatamente 1 ocorrência</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->{0,1}</userinput -></term> -<listitem -><para ->Zero ou 1 ocorrência</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->{,1}</userinput -></term> -<listitem -><para ->O mesmo, mas com menos trabalho ;)</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->{5,10}</userinput -></term> -<listitem -><para ->No mínimo 5 e no máximo 10 ocorrências.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->{5,}</userinput -></term> -<listitem -><para ->No mínimo 5 ocorrências, sem máximo.</para -></listitem> -</varlistentry> - -</variablelist> - -</para> - -<para ->Adicionalmente, existe algumas abreviações: <variablelist> - -<varlistentry> -<term -><userinput ->*</userinput -> (asterisco)</term> -<listitem -><para ->igual a <literal ->{0,}</literal ->, procura por quaisquer número de ocorrências.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->+</userinput -> (sinal de mais)</term> -<listitem -><para ->similar a <literal ->{1,}</literal ->, no mínimo 1 ocorrência.</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->?</userinput -> (ponto de interrogação)</term> -<listitem -><para ->similar a <literal ->{0,1}</literal ->, zero ou 1 ocorrência.</para -></listitem> -</varlistentry> - -</variablelist> - -</para> - -<sect2> - -<title ->Guloso</title> - -<para ->Ao usar os quantificadores sem máximo, as expressões regulares padronizam a combinação para o mais próximo da string procurada possível, comumente conhecido como comportamento <emphasis ->guloso</emphasis ->.</para> - -<para ->O software moderno de expressões regulares fornece o chamado <quote ->desligamento</quote -> do modo 'guloso', embora em um ambiente gráfico a interface fornece a você o acesso a isto. Por exemplo, um diálogo de busca, fornecendo a busca para uma expressão regular, poderia ter uma caixa chamada <quote ->Combinação Mínima</quote ->, bem como indicar se o 'modo guloso' é o comportamento padrão.</para> - -</sect2> - -<sect2> -<title ->Exemplos do Contexto</title> - -<para ->Aqui estão alguns exemplos do uso de quantificadores</para> - -<variablelist> - -<varlistentry> -<term -><userinput ->^\d{4,5}\s</userinput -></term> -<listitem -><para ->Combina com os dígitos em <quote ->1234 ir</quote -> e <quote ->12345 agora,</quote -> mas não combina com <quote ->567 sete</quote -> nem com <quote ->223459 algum local</quote -></para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\s+</userinput -></term> -<listitem -><para ->Combina uma ou mais vezes com caracteres de espaço em branco</para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->(bla){1,}</userinput -></term> -<listitem -><para ->Combina com todos os <quote ->blablabla</quote ->, e com <quote ->bla</quote -> em <quote ->blackbird</quote -> ou <quote ->tabla</quote -></para -></listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->/?></userinput -></term> -<listitem -><para ->Combina com <quote ->/></quote -> em <quote -><fecharitem/></quote -> bem como com <quote ->></quote -> em <quote -><abriritem></quote ->.</para -></listitem> -</varlistentry> - -</variablelist> - -</sect2> - -</sect1> - -<sect1 id="assertions"> -<title ->Afirmações</title> - -<para -><emphasis ->Afirmações</emphasis -> permitem que uma expressão regular combine com certas condições controladas.</para> - -<para ->Uma afirmação não precisa de um caractere para combinar, e em vez disso ela investiga as adjacentes de uma possível combinação, antes de conhecê-la. Por exemplo: a afirmação <emphasis ->limite da palavra </emphasis -> não tenta encontrar um caractere que não seja da palavra, oposto de uma palavra em sua posição, e ao invés disso, ele certifica-se de que não existe um caractere da palavra. Isto significa que a afirmação pode combinar onde não existe caractere, &ie;, no final de uma string procurada.</para> - -<para ->Algumas afirmações realmente possuem um padrão para combinar, mas a parte da string combinando não será uma parte do resultado da busca da expressão inteira.</para> - -<para ->As Expressões Regulares, como documentadas aqui, suportam as seguintes afirmações: <variablelist> - -<varlistentry -> -<term -><userinput ->^</userinput -> (circunflexo: início de string)</term -> -<listitem -><para ->Combina com o início da string procurada.</para -> <para ->A expressão <userinput ->^Peter</userinput -> combinará com <quote -> Peter</quote -> na string <quote ->Peter, ei!</quote ->, mas não com <quote ->Ei, Peter!</quote -> </para -> </listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->$</userinput -> (final da string)</term> -<listitem -><para ->Combina com o fim da string procurada.</para> - -<para ->A expressão <userinput ->você\?$</userinput -> combinará com o 'você' no final da string <quote ->É isto que deseja para você?</quote ->, mas não combinará com <quote ->É isto que deseja para você, certo?</quote -></para> - -</listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->\b</userinput -> (limite da palavra)</term> -<listitem -><para ->Combina se existir um caractere da palavra, mas não combina com o caractere de outra.</para> -<para ->Isto é útil para encontrar finais de palavras, como por exemplo, finais para encontrar uma expressão inteira. A expressão <userinput ->\bem\b </userinput -> procurará separado por <quote ->em</quote -> na string <quote ->Ele estava em prantos no embarque</quote ->, mas não combinará, por exemplo, com o <quote ->em</quote -> de <quote -> embarque</quote ->.</para -></listitem> - -</varlistentry> - -<varlistentry> -<term -><userinput ->\B</userinput -> (sem limite de palavra)</term> -<listitem -><para ->Combina com tudo que <quote ->\b</quote -> não combina.</para> -<para ->Isto significa que ele combinará com string dentro de palavras. A expressão <userinput ->\Em\B</userinput -> combinará com <quote ->embarque</quote -> mas não com <quote ->Ele estava em prantos</quote ->.</para> -</listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->(?=PADRÃO)</userinput -> (adiante positivo)</term> -<listitem -><para ->Uma afirmação adiante olha na parte da string seguinte, como uma possível combinação. O 'adiante positivo' prevenirá a string de combinação , se o texto seguinte não combina com o <emphasis ->PADRÃO</emphasis -> da afirmação, mas o texto combinado não será incluído no resultado.</para> -<para ->A expressão <userinput ->carta(?=\w)</userinput -> combinará com <quote ->carta</quote -> em <quote ->cartada</quote ->, mas não em <quote ->O jogador deu uma cartada!</quote -></para> -</listitem> -</varlistentry> - -<varlistentry> -<term -><userinput ->(?!PADRÃO)</userinput -> (adiante negativo)</term> - -<listitem -><para ->O 'adiante negativo' previne que uma possível combinação seja de conhecimento, se a seguinte parte da string buscada não combina com seu <emphasis ->PADRÃO</emphasis ->.</para> -<para ->A expressão <userinput ->const \w+\b(?!\s*&)</userinput -> combinará com <quote ->const char</quote -> na string <quote ->const char* foo </quote -> enquanto que não combinará <quote ->const QString</quote -> em <quote ->const QString& bar</quote ->, pois o <quote ->& </quote -> combina com o padrão de afirmação negativo.</para> -</listitem> -</varlistentry> - -</variablelist> - -</para> - -</sect1> - -<!-- TODO sect1 id="backreferences"> - -<title ->Back References</title> - -<para -></para> - -</sect1 --> - -</appendix> |