На моей странице у меня есть таблица с более чем 500 строк, в ней один столбец, где все ячейки содержат разные числа, такие как 55123, 666000, 3000 и 1459000 (цифры для денежных сумм). Мне нужно было бы вставлять тонкие пробелы в числа, чтобы их было легче читать, по следующей схеме:
Семь цифр подряд заменяются на: d ddd ddd (например, 1 459 000, d = цифра)
от шести до: ддд ддд (например, 666 000)
от пяти до: дд ддд (например, 55 123)
От четырех до: д ддд (например, 3000)
используя поиск/изменение, я могу найти все экземпляры, например, 7 цифр подряд с помощью строки grep \d{7}, но я потерял команду о том, как «изменить», используя найденные числа и добавив тонкий пространство в нужных местах.
Есть ли способ написать сценарий или запрос на поиск/изменение для этой операции, чтобы сделать это в любом месте текста (или только в таблице)? Любые советы по этому поводу очень ценятся!
В движке сопоставления есть ошибка (по крайней мере, в моем дизайне), мы исправим ее в первую очередь.
Находить:
(.)\Z
Заменять
$1:
Заменить все
Хорошо, теперь у нас есть якорь в конце истории. Теперь о магии:
Находить:
(\d)(?=(\d\d\d)+(:|\s))
Объяснение соответствует любой цифре, за которой следует любая тройка цифр и : или любой пробел
Заменять
$1~<
Число и тонкое пространство
Заменить все
А теперь давайте закрепим конечный маркер обратно:
Находить:
:\d
Заменять
оставить пустым
Заменить все
Сделанный.
PS : можете попробовать, если (\d)(?=(\d\d\d)+\Z)
работает, на моей машине не работает.
Вики