2017-02-02 24 views
1

我試圖從服務器日誌中隔離所有用戶名。用於查找查詢字符串的逆的正則表達式

如何找到字符串的正則表達式查詢的逆?

/(?<=username=)(.*)(?=&password)/g 

,並且會發現我湯姆傑裏從以下

「POST/V1 /登錄HTTP/1.1」 403 24 「 - 」「 curl/7.47.0「」 - 「 」username = tom & password = tom1q2w「」POST/v1/login HTTP/1.1「403 24」 - 「 」curl/7.47.0「」 - 「」username = jerry &密碼= jerryqaws編輯「

但是,然後我想用\ n替換反向字符串,所以我會有一列用戶名。

+1

嘗試['。*?username =(。*?)&password。*'](https://regex101.com/r/oKljPC/1)並替換爲'$ 1 \ n' –

回答

2

您可以使用

.*?username=(.*?)&password.* 

$1\n取代。見regex demo

詳細

  • .*? - 比換行字符儘可能少到第一個以外的任何字符0+ ...
  • username= - 字面字符序列
  • (.*?) - 捕獲組1匹配任何0+字符而不是換行符字符儘可能少到第一個...
  • &password - 文字字符序列
  • .* - 儘可能多的換行符字符以外的任何0+字符。

$1是將組1內的值插回到結果字符串中的替換反向引用。

相關問題