У меня есть несколько строк в документе notepad++, и я хочу найти все строки, которые содержат что-то, кроме "0,00" Т.е.

Timetaken: 2.39
Timetaken: 1.30
Timetaken: 0.75
Timetaken: 0.00
Timetaken: 0.43

и я хочу найти все те, которые не имеют значения 0,00?

Это возможно с Notepad ++?

4 ответа4

2

У меня нет Notepad++ (потому что я использую только Linux для разработки), но я попробовал ваши строки образца в текстовом редакторе Kate и обнаружил, что следующее регулярное выражение работает, чтобы выбрать только те строки, которые соответствуют шаблону выше, но не содержат " 0,00 "как их числовое значение:

^Timetaken: (?!0\.0+$)([0-9]+\.[0-9]+)$

Это регулярное выражение говорит:

  • «Timetaken:» появляется сразу после начала строки.
  • Значение «0». с последующим одним или несколькими нулями, пока конец строки не найден. (Это известно как негативное прогнозное утверждение.)
  • Найдена одна или несколько цифр, затем точка, за которой следуют одна или несколько цифр до конца строки.
  • Если числовое значение не равно нулю, то оно захватывается в первой группе с помощью сопоставителя регулярных выражений.

Глядя на документацию по использованию регулярных выражений в Notepad++, я подозреваю, что этот шаблон будет хорошо работать и в этом текстовом редакторе.

2

Текущий принятый ответ неверен; он не будет соответствовать следующему, даже если он должен:

Timetaken: 0.0
Timetaken: 0.01
Timetaken: 0.0asdf
foo Timetaken: 0.0 bar
Timetaken: 10.0

Есть четыре вещи не так с этим:

  1. Ему нужны якоря (^ и $), чтобы он соответствовал объекту Timetaken, только если он является единственным, из которого состоит строка.

  2. [00] эквивалентно просто 0 , так как это класс символов.

  3. . не сбежал.

  4. Существует ненужное .*

Итак, фиксированное регулярное выражение:

^Timetaken: (?!0\.00)$
0

Если у вас есть другой контент в файле, кроме строк, которыми вы поделились здесь, вы можете использовать это регулярное выражение:

^(.(?!0\+0,00))* $

IE, если у вас есть строки, которые не начинаются с Timetaken:

-1

Нажмите Ctrl+f для поиска и используйте нижеследующее регулярное выражение

Timetaken: (?!.*[0].[00])

Он найдет все строки, кроме «Timetaken: 0.00», и вывод будет следующим

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .