Em expressões regulares, qual é a diferença entre [: blank:], [: space:] e \ s-?


7

Eu tenho brincado rxultimamente, e eu notei que existem (pelo menos) três maneiras diferentes de indicar espaços em branco em expressões regulares.

  1. [:blank:]
  2. [:space:]
  3. \s-

Quais são as diferenças entre cada um deles? Depende do modo principal?


3
O que o Emacs diz? ([:space:]e\s-são iguais.)C-h i, manual ElispC-s [:space],.
Drew #

"Brincando";)
Sean Allred

Respostas:


7

A [:blank:]classe de caracteres corresponde apenas aos caracteres SPC e TAB. Os outros dois correspondem a espaço em branco com base na tabela de sintaxe ativa.

Não parece haver uma diferença entre [:space:]e \s-. Este último é um exemplo do geral \ s código padrão para correspondência com base numa classe de sintaxe.


11
Acabei de fazer um teste rápido modificando a tabela de sintaxe em um buffer para deixar caracteres adicionais em branco. Testando com regexp-buildereu posso confirmar que ambos [:space:]e \s-combinar os caracteres adicionais como espaços.
glucas
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.