RegExp извлекает уникальные номера из списка чисел (упорядочено также) [Использование BareTailPro Log Matcher - Real Time Analyzer] - PullRequest
0 голосов
/ 19 июля 2010

Как я могу извлечь уникальные номера из длинного списка номеров (расположены по порядку).Мне нужно регулярное выражение, чтобы сделать это.

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

Пример ввода:

123
321
123
432
343
343
432
811
932
432
...list extends upto n number linewise

Пример вывода:

123
321
432
343
811
932
...list extends upto n numbers linewise

Rgds,
Anita

Ответы [ 3 ]

1 голос
/ 19 июля 2010

Если в действительности имеет в качестве регулярного выражения, и если baretailpro поддерживает регулярные регулярные выражения, то вы можете найти

^(\d+)$\r?\n?(?=.*^\1$)

и заменить все ничем (пустая строка). Вам необходимо установить параметр для точки, чтобы соответствовать всем символам, включая символы новой строки; если у вас нет этой опции, используйте ^(\d+)$\r?\n?(?=[\s\S]*^\1$).

Проблема в том, что это регулярное выражение удалит все вхождения повторяющихся чисел, кроме последнего . Если вы хотите сохранить первый, ваш движок регулярных выражений должен поддерживать lookbehind, а также бесконечное повторение внутри lookhehind. Вряд ли любой движок регулярных выражений, кроме .NET и JGSoft. Но если вы можете использовать его, то этот будет лучше:

(?<=^\1$.*)^(\d+)$\r?\n?
0 голосов
/ 19 июля 2010

У меня Windows и у меня нет программного обеспечения Excel или Db, поэтому я сделал это так:

  1. Установлен порт unxUtil для Win32 (3,6 МБ или загрузите и используйте только те, которые вам нужны)
  2. вставил файл, содержащий также nos, в папку, содержащую utils, например, wbin
  3. Использованные инструкции на www.ibm.com/developerworks/linux/library/l-tiptex6.html Или указанныемистером ghostdog74 выше.NB. В Windows используются команды в качестве перенаправления вывода в текстовый / выходной файл. (Как перенаправление в файл), например:> result.txt

  4. И все готово.

Файл отсортирован

rgds, Сунита [большой коллега Аниты]

0 голосов
/ 19 июля 2010

обычно вы не используете регулярные выражения для поиска уникальных предметов.вы используете такие инструменты, как uniq (в * nix / windows) или sort -u, чтобы найти уникальные строки.Или вы можете использовать язык программирования с поддержкой массивов / словарей / хэшей, например, Perl / Python.Если анализатор журнала baretail может вывести данные в виде обычного текста / CSV-файла, вы можете использовать эти инструменты для получения уникальных строк.

пример, если вы экспортировали свои данные в текстовый файл

$ cat file
123
321
123
432
343
343
432
811
932
432
$ sort -u file
123
321
343
432
811
932
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...