En mi página tengo una tabla con más de 500 filas, en una columna donde todas las celdas contienen números diferentes, como 55123, 666000, 3000 y 1459000 (cifras de sumas de dinero). Necesitaría insertar espacios delgados en los números para que sean más fáciles de leer, de acuerdo con el siguiente esquema:
Siete dígitos seguidos se cambian a: d ddd ddd (p. ej., 1 459 000, d=dígito)
seis a: ddd ddd (ej. 666 000)
cinco a: dd ddd (ej. 55 123)
Cuatro a: d ddd (ej. 3000)
usando buscar/cambiar puedo encontrar todas las instancias de, por ejemplo, 7 dígitos en una fila con la línea grep \d{7} pero estoy perdido al tener un comando sobre cómo "cambiar" usando los números encontrados y agregando un delgado espacio en las posiciones correctas.
¿Hay alguna forma de escribir un script o una consulta de búsqueda/cambio para esta operación para hacer esto en cualquier parte del texto (o solo en la tabla)? ¡Cualquier consejo sobre esto es muy apreciado!
Hay un error en el motor de emparejamiento (al menos en mi diseño interno), lo arreglaremos primero.
Encontrar:
(.)\Z
Reemplazar
$1:
Reemplaza todo
Bien, ahora tenemos un ancla al final de la historia. Ahora la magia:
Encontrar:
(\d)(?=(\d\d\d)+(:|\s))
Explicación coincide con cualquier dígito seguido de cualquier número triplete de dígitos y: o cualquier espacio en blanco
Reemplazar
$1~<
Número y espacio delgado
Reemplaza todo
Y ahora volvamos a corregir el marcador final:
Encontrar:
:\d
Reemplazar
dejar vacío
Reemplaza todo
Hecho.
PD : puede probar si (\d)(?=(\d\d\d)+\Z)
funciona, no funciona en mi máquina.
viki