2013-07-19 4 views
0

У меня есть ряд строки в следующем формате:RegEx Notepad ++

   LINE: 5190 STNO: 22669 SI: VOICE 
      CCT LINE STNO SI BUS TYPE 
      003 6269    OPTI ONLY  
      MULTLINE 8. . . . . . . . . . . . . . . 
      001 SUBUNIT . . . . . DIGITE MAIN  DEFIL/TRS 
      (ALT_ROUT: N)  (OPTIIP ) 
       LINE: 5291 STNO: 29956 SI: VOICE 

Что мне нужно найти с помощью регулярных выражений (Notepad ++) являются числами только после "STNO:"

Есть около 100 таких Матчи.

Я устал STNO: \ s + \ d {4,5}, но он принимает STNO также в матче, который я не хочу. Пожалуйста помоги.

Мне нужно сохранить только согласованный результат и отдохнуть. Я хочу удалить или скопировать сопоставленные элементы в новый файл в зависимости от того, что проще.

+0

На ваш вопрос ответили?Если нет, то, пожалуйста, добавьте дополнительные данные, чтобы на них можно было ответить. Если он был дан ответ, прочитайте http://stackoverflow.com/help/accepted-answer – AdrianHHH

ответ

1

Предлагаю двухэтапный подход. Сначала получите все строки с STNO и числом. Второй удалите все, кроме номера.

Выберите Отметить вкладкой в ​​диалоге поиска. Обеспечить Закладка линии отмечена галочкой. В Найдите то, что введите код STNO:\s*\d+, а затем нажмите Отметить все.

Меню доступа => Поиск => Закладка => Скопировать закладки. Затем вставьте в другой буфер. Кроме того, для работы в одном файле используйте Menu => Search => Bookmark => Удалить немаркированные строки. Теперь у вас должны быть все нужные строки в буфере.

ли поиск по регулярному выражению и заменить настройки Найти то, что быть ^.*STNO:\s*(\d+).*$ и Заменить на \1. Затем нажмите Заменить все.

Вышеприведенное предполагает, что в строке имеется только одно число.

=========================

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

Позвольте маркеру быть keep. Сделайте поиск и замените установку Найдите, что должно быть keep и Замените на символ пробела, убедитесь, что Match case не выбран; затем нажмите Заменить все. Затем выполните поиск и замену регулярного выражения. Найдите, что должно быть ^STNO:\s*(\d+) и Заменить на на \r\nkeep\1\r\n. Возможно, вам понадобится Match case ticked; затем нажмите Заменить все. Затем сделайте метки (как описано выше) с помощью Найдите то, что установлено на keep, а затем Menu => Search => Bookmark => Удалить немаркированные строки. Наконец, выполните поиск и замените настройку Найдите, что должно быть keep и Замените пустым.

+0

Спасибо Адриану. Я попробую решение, которое вы предоставили сегодня, и получите обновление здесь. – user2459929