2012-04-13 18 views
0

ログファイルのURLからいくつかのデータを抽出しようとしていますが、私はほとんどそこにいますが、最後に取り組んでいます。ここで 最後にスペースを入れて文字列を取り込む正規表現

は、私がこれまでに出ている正規表現、私は

json?userId=1234&[email protected] HTTP/1.1 

で働いていたURLの

(\?.*\s+) 

例であり、私は

userId=1234&[email protected] 

を引き出したいです類似したURL行の複数行にわたる上の正規表現は、最初は適切なものを取得しますが、空白の後ろでは停止しません。それを含まないように私は何が欠けていますか?白いスペースで正しく終わる?

編集:明確な質問が少しあります。

答えて

0

これはsedで機能します。

echo "json?userId = 1234 & email [email protected] HTTP/1.1" | sedの/.*?\(。* \)\ s。* $/\ 1/

お試しください。 (\?[^ \ s] +) はaの後に空白ではない多くの文字と一致します。

+0

私は(\?[^ \ s] +)を使用しましたが、ここには?を含めない方法があります。http://regexpal.com/ –

1

私はそれを行うためにそのように使用:

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

を(このテスターは置き換えません)

[編集]を、私はあなたの実装を知りませんが、それはhttp://regexpal.com/の「作業」だ:「を忘れてしまいましたか? "

関連する問題