0

入力:

+ 1220     001d.a16a.9400    dynamic   0          F    F  Po10
* 1220     0021.f60f.4127    dynamic   0          F    F  Eth1/46

表現:

\S+\s+(\d+)\s+([0-9A-Fa-f]{4}[.][0-9A-Fa-f]{4}[.][0-9A-Fa-f]{4})\s+\w+\s+\d+\s+\w+\s+\w+\s+(.*)

交換:

$1\t$2\t$3

出力:

1220    001d.a16a.9400  Po10
1220    0021.f60f.4127  Eth1/46
4

1 に答える 1

0

「最適化」で短縮する場合は、次の方法を試してください。

表現:

^.+?(\d+)\s+([^\s]+?)\s.+?([^\s]+)$

交換:

$1\t$2\t$3

おそらく、/m (複数行) および /s (ドットは任意の文字に一致) スイッチを使用する必要があります。

PHP の例:

<?php
  $sourcestring="+ 1220     001d.a16a.9400    dynamic   0          F    F  Po10";
  echo preg_replace('/^.+?(\d+)\s+([^\s]+?)\s.+?([^\s]+)$/ms','$1\t$2\t$3',$sourcestring);
?>
于 2016-03-20T13:39:10.993 に答える