Eu tenho algumas strings que podem conter letras, números e o símbolo '#'.
Gostaria de remover dígitos, exceto as palavras que começam com '#'
Aqui está um exemplo:
"table9 dolv5e #10n #dec10 #nov8e 23 hello"
E a saída esperada é:
"table dolve #10n #dec10 #nov8e hello"
Como posso fazer isso com regex, stringr ou gsub?
Você pode remover sinalizadores
i
, porque não diferencia maiúsculas de minúsculasUse este padrão:
[^#\d]+(#\w+|[A-Za-Z]+\w*)
[^#\d]+
= início de caractere sem # e dígitos#\w+
= localizar # seguido de dígito ou letra[A-Za-z]+\w*
= localizar letra seguida de letra e / ou número ^ | Você pode alterar isso com\D+\S*
= encontre qualquer caractere não apenas quando o primeiro for letra e não apenas seguido por letra e / ou número. Eu não sou colocado como\w+\w*
causa\w
igual a =[\w\d]
.Eu tentei o código em JavaScript e funcionou. Se você deseja que a correspondência não seja apenas seguida por uma letra, você pode usar o código
fonte