Ошибка чтения файла журнала с выражением reg - PullRequest
1 голос
/ 18 ноября 2009

Я пытаюсь прочитать файл журнала, содержимое которого выглядит следующим образом:

127.0.0.1 -  - [17/OCT/2009:00:02:14 0000] GET xxxxxx  xxxx  xxx 

Я попробовал следующий reg exp и получаю ERROR: Unclosed group near index 90

регулярное выражение = (\d+\.\d+\.\d+\.\d+)\s-\s-\s\[(\d+)/(\w{3})/(\d{4}):(\d{2}):(\d{2}):(\d{2})\s(\d{4}\)].*

Может ли кто-нибудь мне помочь?

Ответы [ 5 ]

2 голосов
/ 18 ноября 2009

Вы забыли сбежать от некоторых символов:

^(\d+\.\d+\.\d+\.\d+)\s-\s-\s\[(\d+)\/(\w{3})\/(\d{4}):(\d{2}):(\d{2}):(\d{2})\s(\d{4})\]
1 голос
/ 18 ноября 2009

Я думаю, что "[" и "]" следует экранировать: [[] и []] или \[ и \].

Для Java:

java.util.regex.Pattern.compile("(\\d+.\\d+.\\d+.\\d+)\\s-\\s-\\s\\[(\\d+)/(\\w{3})/(\\d{4}):(\\d{2}):(\\d{2}):(\\d{2})\\s(\\d{4})\\].*")
0 голосов
/ 18 ноября 2009
^\d+\.\d+\.\d+\.\d+\s-\s-\s\[\d{2}\/[A-Z]{3}\/\d{4}:\d{2}:\d{2}:\d{2}\s\d{4}]\sGET\s(.{6}\s.{4}\s.{3})$
0 голосов
/ 18 ноября 2009

[и] - специальные символы. Вот что значит «закрытая группа». В зависимости от вашего вида регулярных выражений, вам нужно будет поставить 1 \ или 2 \ перед каждой скобкой.

regex = (\ d +. \ D +. \ D +. \ D +) \ s- \ s- \ s [(\ d +) / (\ w {3}) / (\ d {4}): (\ д {2}): (\ d {2}):. (\ d {2}) \ S (\ d {4})] *

0 голосов
/ 18 ноября 2009

Во-первых, убегайте [и] с обратными слешами.Они имеют особое значение в регулярных выражениях.

...