Я хочу удалить лишние десятичные знаки из строки, используя функцию поиска/замены с регулярным выражением.
Например :
<xml_taga>145.3345542123</xml_taga>
<xml_tagb>125.1245471</xml_tagb>
<xml_tagc>42.12</xml_tagc>
Должно выглядеть так:
<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>
Дальше всего я продвинулся с этим выражением
(\.\d{3,12})
Любая помощь будет оценена по достоинству.
решение1
- Ctrl+H
- Найти что:
(?<=\d\.\d\d)\d+
ИЛИ\d\.\d\d\K\d+
- Заменить:
LEAVE EMPTY
- Replace all
Объяснение:
(?<= : start lookbehind, make sure we have
\d\.\d\d : a digit, a dot and 2 digits
) : end lookbehind
\d+ : 1 or more digits
другая альтернатива:
\d\.\d\d : a digit, a dot and 2 digits
\K : forget what we have seen until this point
\d+ : 1 or more digits
- Проверьте регулярное выражение
Результат для данного примера:
<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>
решение2
Я хочу удалить лишние десятичные знаки из строки, используя функцию поиска/замены с регулярным выражением.
Меню «Поиск» > «Заменить» (или Ctrl+ H)
Установите «Найти что» на
(\d+\.\d\d).*<
.Установите «Заменить на»
\1<
Включить «Регулярное выражение» и «соответствует новой строке»
Нажмите «Заменить все».
До:
<xml_taga>145.3345542123</xml_taga>
<xml_tagb>125.1245471</xml_tagb>
<xml_tagc>42.12</xml_tagc>
После:
<xml_taga>145.33</xml_taga>
<xml_tagb>125.12</xml_tagb>
<xml_tagc>42.12</xml_tagc>
дальнейшее чтение
- Как использовать регулярные выражения в Notepad++ (учебник)
- Notepad++: Руководство по использованию регулярных выражений и расширенного режима поиска
- Учебник по регулярным выражениям
- RegExr: изучайте, создавайте и тестируйте RegEx
- regex101: Онлайн-тестер и отладчик регулярных выражений
- RegExper: визуализатор регулярных выражений