正则表达式在末尾抓住带有空格的字符串

时间:2012-04-13 18:47:19

标签: regex

我正在尝试从LOG文件中的URL中提取一些数据,而我几乎就在那里,但最后一部分我被困住了。

这是我到目前为止提出的正则表达式,

(\?.*\s+)

我正在使用的网址示例

json?userId=1234&email=blahblah@blah.com HTTP/1.1

我想退出

userId=1234&email=blahblah@blah.com

跨越多行类似的URL行。上面的正则表达式在开始时获得了正确的东西,但是在空格之后并没有停止。我错过了什么让它不包括?并正确地在白色空间结束?

编辑:澄清一点问题。

2 个答案:

答案 0 :(得分:1)

我曾经这样做过:

\?([^ ]*) -> \1

我不知道你的实现,但它在http://regexpal.com/上“正常工作”(此测试人员不会替换)

编辑:忘了“?”

答案 1 :(得分:0)

这适用于sed。

echo“json?userId = 1234& email=blahblah@blah.com HTTP / 1.1”| sed的/.*?\(。* \)\ s。* $ / \ 1 /

你可能也试试。 (\?[^ \ S] +) 在?

之后匹配尽可能多的空格字符