O que faz: fazer em regex

tenho uma expressão regular que se parece com esta

/^(?:\w+\s)*(\w+)$*/

O que é o ?:?

 12
Author: BoltClock, 2010-09-14

3 answers

[[4]} indica que o subpattern é um subpattern não-captura. Isso significa que tudo o que for igualado em {[[0]}, mesmo que seja incluído por () não aparecerá na lista de fósforos, apenas (\w+) aparecerá.

Você ainda está à procura de um padrão específico (neste caso, um único caractere de espaço em branco seguindo pelo menos uma palavra), mas você não se importa com o que realmente corresponde.

 19
Author: BoltClock, 2010-09-14 03:12:46

Além das excelentes respostas fornecidas, a sua utilidade é também simplificar o código necessário para extrair grupos dos resultados correspondentes. Por exemplo, seu grupo (\W+) é conhecido como Grupo 1 sem ter que se preocupar com quaisquer grupos que aparecem antes dele. Isto pode melhorar a manutenção do seu código.

 3
Author: Christopher Hunt, 2010-09-14 04:45:26

Significa apenas o grupo mas não se lembra da parte agrupada.

Por omissão ( ) diz ao motor regex para se lembrar da parte da cadeia que corresponde ao padrão entre ele. Mas às vezes nós só queremos agrupar um padrão sem ativar a memória regex, para fazer isso nós usamos (?: no lugar de (

 2
Author: codaddict, 2010-09-14 03:13:25