2017-04-25 1 views
3

私は(ポートIPを分離する)REGEX:カンマ(IP:PORT)と別々コロン:時間が、私は分からなかった

2017-04-01,00:01:03,00:10:f3:3f:fe:f2,192.168.2.62,28741,172.20.0,80,GET,http://www.website.com 

にこの文字列

date,time,mac_address,source_ip:source_port,dst_ip:dst_port,method,url 

2017-04-01,00:01:03,00:10:f3:3f:fe:f2,192.168.2.62:28741,172.20.0:80,GET,http://www.website.com 

変換に苦しんでいますそれ! (?:\.\d+)(?<=\d)\:のような正規表現を試しましたが、動作しません。
私はpowershell -replace演算子を使いたいです。

+1

'\ dは+ \ \ D + \ \ D + \ \ D +(:)\ dは+'マッチ。。。 IPとポートの間にある ':'を取得(および取得)します。これは役に立ちますか? – Maroun

+0

@WiktorStribiżew私は、テキストファイルが長いログファイルなので、プロセスを長くしています! – HBS

+0

@MarounMaroun powershellでは、すべてのip:portと一致し、置換演算子は使用できません – HBS

答えて

2

あなたは

$s = "2017-04-01,00:01:03,00:10:f3:3f:fe:f2,192.168.2.62:28741,172.20.0:80,GET,http://www.website.com" 
$s -replace "(\d+(?:\.\d+){2,3}):(\d+,)", '$1,$2' 

出力を使用することができる:ここ

2017-04-01,00:01:03,00:10:f3:3f:fe:f2,192.168.2.62,28741,172.20.0,80,GET,http://www.website.com 

  • (\d+(?:\.\d+){2,3}) - 桁が1で追跡.の2つのまたは3つのオカレンスが続くマッチ1+ +数字(グループ1、$1
  • : - コロン
  • (\d+,) - 1+数字と,(グループ2、$2
関連する問題