Tengo algunas cadenas que pueden contener letras, números y el símbolo '#'.
Me gustaría eliminar dígitos, excepto las palabras que comienzan con '#'
Aquí hay un ejemplo:
"table9 dolv5e #10n #dec10 #nov8e 23 hello"
Y la salida esperada es:
"table dolve #10n #dec10 #nov8e hello"
¿Cómo puedo hacer esto con regex, stringr o gsub?
Puede quitar banderas
i
, porque no distingue entre mayúsculas y minúsculasUsa este patrón:
[^#\d]+(#\w+|[A-Za-Z]+\w*)
[^#\d]+
= comienzo de caracteres sin # y dígitos#\w+
= buscar # seguido de dígito o letra[A-Za-z]+\w*
= buscar letra seguida de letra y / o número ^ | Puede cambiar esto con\D+\S*
= buscar cualquier carácter, no solo cuando el primero es letra y no solo seguido de letra y / o número. No estoy puesto como\w+\w*
causa\w
igual que =[\w\d]
.Probé el código en JavaScript y funciona. Si desea una coincidencia no solo seguida de una letra, puede usar el código
fuente