0
我正在編輯一些網絡日誌文件,並且想從某些域中刪除雙引號,但不是全部。正則表達式用Powershell替換引號
例如,在下面一行中,我想從IP地址和server.domain.com中刪除雙引號,但留下剩餘的部分。
2013-02-18 21:47:46.636 POST /Path/page.html - - "173.194.79.106" "Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.296)" - "server.domain.com" 200 1079 15
我循環通過文件加載與Foreach-Object
每一行,我可以得到線周圍沒有IP地址的報價與此:
[regex]::replace($_,"`"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})`"", '$1')
所以我嘗試使用以下做到這一點與server.domain.com項目一樣:
[regex]::replace($_,"`"[a-zA-Z]*\.[dD][oO][mM][aA][iI][nN]\.[cC][oO][mM]`"",'$1')
和我的結果是這樣的:
2013-02-18 21:47:46.636 POST /Path/page.html - - "173.194.79.106" "Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.296)" - $1 200 1079 15
我做錯了什麼?
你忘了括號()中的第二個正則表達式我認爲 – user15 2013-02-19 20:15:45
就是這樣!就在我眼前,我錯過了它!感謝您成爲探空板!它應該是:「[regex] :: replace($ _,」'「([a-zA-Z] * \。[dD] [oO] [mM] [aA] [iI] [nN] \。 [cC] [oO] [mM])'「」,'$ 1')「 – user2088608 2013-02-19 20:41:06
如果您解決了問題,並且可以將其添加爲答案並將其標記爲已接受。 – 2013-02-19 20:54:14