2016-12-06 4 views
-2

私は、必要以上に多くの情報を生成するイベントソースを持っています。ほとんどすべてのイベントはカンマで区切られたフィールドです。イベントによっては、コンマ区切りフィールドの後にXML情報が含まれるものがあります。私はすべてのXMLを含む、イベントの終わりに22カンマの後にすべてを削除したいと思います。 REGEXの多くのバリエーションを試しましたが、それを正しくするように見えません。これで終わった正規表現 - n番目のカンマの後のすべてを削除する

^(?:[^,\n]*,){22}((.*?))(?:.*$)

は、私が何をしたいの反対をやっているようです。

+3

それはあなたの文字列を記述することをお勧めします、それを示すのは良い考えです。 –

+1

あなたは残したいものをキャプチャして残りを破棄するべきです –

+0

'^((?:[^、\ n] *、){22})。* $' –

答えて

0

これを解説します。s /(?:[^、] 、){22})。((\ S + \ S +)*。){1、}/$ 1/gの

0

あなたの答えに基づいて、これはより良い仕事をするかもしれません。

s/^([^,]*+(?:,[^,]*+){0,21}).*?$/$1/gsm 
関連する問題