簡體   English   中英

正則表達式用Powershell替換報價

[英]Regex Replace quotes with Powershell

我正在編輯一些Web日志文件,並且想從某些字段中刪除雙引號,但不是全部。

例如,在下一行中,我想從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

我究竟做錯了什么?

添加括號並使用(?i)區分大小寫:

[regex]::replace( $_, "(?i)`"([a-z]*\.domain\.com)`"", '‌​$1' )

或者,您可以使用-replace ,因為默認情況下不區分大小寫

$_ -replace "`"([a-z]*\.domain\.com)`"", '$1'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM