正则表达式提取位于方括号内的数据[...]

时间:2017-09-11 07:23:27

标签: java regex

我需要从提到的行中找到字符串表示日期[07/Mar/2014:22:12:28 -0800]的正则表达式:

64.242.88.10 - - [07/Mar/2014:22:12:28 -0800]“GET / twiki / bin / attach / TWiki / WebSearch HTTP / 1.1”401 12846

2 个答案:

答案 0 :(得分:1)

如果您的字符串除此之外在方括号中没有任何其他内容,则:

\[.*?]

Regex101 Demo

<强>详情

  • \[ - 左括号(由于[是元字符而转义)
  • .*? - 非贪婪匹配所有
  • ] - 结束括号(不需要转义)

当适应在Java程序中使用时,你也需要转义反斜杠。:

Pattern.compile("\\[.*?]");

答案 1 :(得分:0)

试试这个:

\[[0-9]{1,2}\/[a-zA-Z]+\/[0-9]{4}:[0-9]{2}:[0-9]{2}:[0-9]{2} -[0-9]{4}]

简短版本(贪婪),因为它被[ ]包围:

\[.*]