Страница 1 из 1

Программисты, задачка по регэкспам. Практическая

Добавлено: 2009-авг-17 09:49
Sat
Имеется текстовый лог от одной железки. Надо найти в нем строчки вида
FAULT CODE XX
или
FAULT CODE X
где XX или X - число.
С одним условием - игнорировать
FAULT CODE 14

Искомая строка всегда начинается с новой строки и после числа всегда идет перенос строки.
Я туплю в том моменте, чтобы сделать условие, отсеивающее "14".
Как временное решение, сделал
FAULT CODE [ 0-9][^4]
Это работает, просто потому что кодов 24,34,44 etc не бывает в моем случае. Но ясен пень, что так некрасиво.

Как пример лога:

NOT ACCEPTED
FAULT CODE 19

EXECUTED

EXECUTED

NOT ACCEPTED
FAULT CODE 14

EXECUTED

NOT ACCEPTED
FAULT CODE 6

ps Блин, форум убирает двойные пробелы. В FAULT CODE X именно 2 пробела перед X.

Re: Программисты, задачка по регэкспам. Практическая

Добавлено: 2009-авг-17 13:18
xrcat
Регэкспы перловые или стандартные?

Re: Программисты, задачка по регэкспам. Практическая

Добавлено: 2009-авг-17 14:21
Sat
Наверное стандартные. Надо, чтобы работал поиск в Lister от TotalCommandera.

Re: Программисты, задачка по регэкспам. Практическая

Добавлено: 2009-авг-17 14:33
УснулиПеликаны
Все стандартные регэкспы совпадают с перловыми.

Re: Программисты, задачка по регэкспам. Практическая

Добавлено: 2009-авг-17 17:05
xrcat
УснулиПеликаны писал(а):Все стандартные регэкспы совпадают с перловыми.
Нифига подобного. К примеру в перловых цифра -- это \d, а в POSIX это :alpha:. Нужно читать хельп и выяснять конкретную грамматику.

По теме попробуй так:

Код: Выделить всё

^FAULT CODE (?!14)
ps. В скобочках -- это non capturing group. Там синтаксис сильно зависит от реализации. Нужно свериться с хельпом.
pps. Тотал командер не держу, поэтому проверить не могу.
ppps. Нужно включить multiline search. Наверняка в тотале он включен по-умолчанию.

Re: Программисты, задачка по регэкспам. Практическая

Добавлено: 2009-авг-17 17:38
alekson