0

わかりました、これはおそらく簡単ですが、私はmatlabを頻繁に使用せず、これを正しくするためにシームすることができません。

私がやりたいのは、テキストの可能性のある行にあるすべてのコンマを置き換えることです。

すなわち:

"3","0.998652","10.1.3.2","10.1.2.3","TCP","[TCP Port numbers reused] 49153 > 10 [SYN] Seq=4294967295 Win=65535 Len=0"
"4","1.002860","10.1.2.3","10.1.3.2","TCP","10 > 49153 [SYN, ACK] Seq=0 Ack=0 Win=65535 Len=0"

上記の行では、コンマのほとんどすべての出現が引用符( "、")で囲まれていることがわかります。私がやりたいのは、それらをそのままにしておくことですが、Matlabを使用して、引用符で囲まれていないすべてのコンマを空白スペースに置き換えます。

これが私が欲しいものです。すなわち:

"3","0.998652","10.1.3.2","10.1.2.3","TCP","[TCP Port numbers reused] 49153 > 10 [SYN] Seq=4294967295 Win=65535 Len=0"
"4","1.002860","10.1.2.3","10.1.3.2","TCP","10 > 49153 [SYN ACK] Seq=0 Ack=0 Win=65535 Len=0"

唯一の違いは、[SYNACK]部分のコンマが削除されていることです。

私はいろいろなことを試しましたが、今のところうまくいったのはこのようなものだけです。

a= '"4","1.002860","10.1.2.3","10.1.3.2","TCP","10 > 49153 [SYN, ACK] Seq=0 Ack=0 Win=65535 Len=0"'
str = regexprep(a,'","','1234567890')
str = regexprep(str,',','')
str = regexprep(str,'1234567890','","')

言うまでもなく、これは最適とはほど遠いので、どんなアイデアでもありがたいです。私が試した関数の中には、引用符を認識できないものもあります(どちらが手元にあるか思い出せません)。

前もって感謝します!

4

1 に答える 1

1

regexprep$1行く方法です、あなたはコンマだけを置き換えることを確認する必要があるだけです(マッチプレースホルダーを使用してマッチの側面部分を元に戻すことによって。

a= '"4","1.002860","10.1.2.3","10.1.3.2","TCP","10 > 49153 [SYN, ACK] Seq=0 Ack=0 Win=65535 Len=0"'

%# replace commas that are neither preceded nor followed by commas
regexprep(a,'([^"]),([^"])','$1$2')

ans =

"4","1.002860","10.1.2.3","10.1.3.2","TCP","10 > 49153 [SYN ACK] Seq=0 Ack=0 Win=65535 Len=0"
于 2012-06-19T01:49:46.957 に答える