Имея очень большой набор данных со значениями с плавающей запятой, где точность больше не требуется, какое регулярное выражение я могу использовать с BBEdit, чтобы позволить мне сохранить максимум 5 цифр после точки?
Физически десятичное значение всегда имеет символ, предшествующий точке, всегда предшествует пробелу, но может иметь запятую или пробел после в строке.
образец:
-162.40904700399989, -82.896416924999954
Это выражение не дает совпадений. Я могу найти их с помощью (\d+\.\d{5})\d*
, но при замене наступает неудача...
ой! \1
работает над заменой. Думаю, у меня была опечатка, и мои глаза скосились...
Извините, я пропустил \d
. Так должно быть (\.\d{5})\d+
Вы можете использовать
Находить: (\d\.\d{5})\d+
Заменять: \1
Подробности
(\d\.\d{5})
- Группа 1 (обозначается через \1
из шаблона замены): цифра, .
, а затем 5 цифр (обратите внимание, что первая \d
не имеет квантификатора, нас не интересует, если их больше одного, достаточно одного перед десятичной дробью) разделитель)\d+
- один или более цифр. Обратите внимание, что квантификатор +
имеет больше смысла, чем *
, потому что мы хотим сопоставить только те числа, которые мы хотим изменить, а те, которые уже имеют 5 цифр после десятичного разделителя, не должны сопоставляться.
Кажется, вам нужно только найти
(\.{5})\d+
и заменить его значением первой группы захвата\1
или$1
.