Необязательный элемент в регулярном выражении в Java - PullRequest
0 голосов
/ 08 августа 2011

У меня есть этот шаблон:

"^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3}) (\\d+|\\S+)"

То, что я использую его в следующей записи журнала доступа Apache:

127.0.0.1 - - [16/Jul/2011:20:29:14 +0100] "GET /TestWebPages/MScAIS-SEWN-Search-Optimisation.html HTTP/1.1" 200 5569

Через некоторое время после 7-го элемента у меня может быть или не быть чего-то,Например,

127.0.0.1 - - [16/Jul/2011:20:29:14 +0100] "GET /TestWebPages/MScAIS-SEWN-Search-Optimisation.html HTTP/1.1" 200 5569 –

Иногда у меня есть - в конце, а иногда его просто не существует.

Как добавить это в мой шаблон?Я пытался использовать (\\S{0}), но это не сработало!

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

Попробуйте добавить: (\\s–){0,1}, что означает, что вы можете иметь ноль или одно вхождение "-"

0 голосов
/ 08 августа 2011

Попробуйте вопросительный знак:

\S? (alternative \S{0,1})

или несколько раз звездочка:

\S* (alternative \S{0,})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...