Tenho um feed no Yahoo Pipes e desejo corresponder tudo após um ponto de interrogação.
Até agora, descobri como combinar o ponto de interrogação usando ..
\?
Agora, apenas para corresponder a tudo o que está depois / segue o ponto de interrogação.
\?.*
corresponde a tudo (incluindo uma string vazia) depois?
."\\?"
Respostas:
Você quer o conteúdo do primeiro grupo de captura.
fonte
Feb 5 '11 at 10:41
. Ainda é bom apontar todas as mudanças que recebemos. Talvez alguém aprenda com Dreamonic apontando isso.Experimente isto:
Os parênteses são um grupo de captura que você pode usar para extrair a parte da string na qual está interessado.
Se a string puder conter novas linhas, pode ser necessário usar o modificador "ponto tudo" para permitir que o ponto corresponda ao caractere da nova linha. Se você precisa ou não fazer isso, e como fazer isso, depende do idioma que você está usando. Parece que você se esqueceu de mencionar a linguagem de programação que está usando na sua pergunta.
Outra alternativa que você pode usar se sua linguagem suportar asserções de lookbehind de largura fixa é:
fonte
Com a técnica de olhar para trás positiva :
(?<=\?).*
(Estamos procurando um texto precedido por um ponto de interrogação aqui)
Exemplo
Basicamente, o
?<=
é uma construção de grupo, que requer o ponto de interrogação de escape, antes que qualquer correspondência possa ser feita.Eles têm um desempenho muito bom, mas nem todas as implementações os suportam.
fonte
Se você deseja combinar todos os caracteres após "?" você pode usar um grupo para corresponder a qualquer caractere e é melhor usar o sinal "$" para indicar o fim da linha.
fonte
.
padrão não corresponde ao caractere de nova linha. Como resultado, mesmo sem o caractere de final de linha na expressão, ele corresponderia ao final da linha.Confira este site: http://rubular.com/ Basicamente, o site permite que você insira algum texto de exemplo (o que você estaria procurando em seu site) e, em seguida, conforme você constrói a expressão regular, ela destacará o que está sendo correspondido tempo real.
fonte
/([a-zA-Z]{4}):/
vai combinarTest: Welcome
e agarrarTest
str.replace(/^.+?\"|^.|\".+/, '');
Isso às vezes é ruim de usar quando você deseja selecionar o que mais remover entre "" e não pode usar mais de duas vezes em uma string. Tudo o que faz é selecionar o que não estiver entre "" e substituí-lo por nada.
Até para mim é um pouco confuso, mas tentarei explicar.
^.+?
(nada OPCIONAL) até"
então|
Or / stop (ainda pesquisando o que isso realmente significa) até / at^.
não selecionou nada até antes do segundo"
uso (|
stop / at). E selecione tudo o que vem depois com. +.fonte