2016-07-06 12 views
0

第二のコンマの後に最初のカンマ、すべての前に、すべてを削除します。私は最初のカンマの前にすべてのものを削除したい正規表現 - 私は、次の文字列を持っているライン

55,1001wuensche.com,0,354137264,1,"0.00 %",0,"0.00 %","2016-04-24 09:00:24" 
56,100hoch3.de,47,2757361,2,"0.00 %",0,"0.00 %","2016-02-11 00:42:10" 

を:55,56,

、すべての後に2番目のカンマ私はこれを達成するために、メモ帳++を使用してい

1001wuensche.com 
100hoch3.de 

結果は、ドメイン名のみが残っている場合、この、のようになります。誰もがアイデアを持っていますか?事前にあなたの助けをありがとう!

+0

あなたはまだpattetnを試しましたか? –

答えて

3
^.*?,(.*?),.*$ 

キャプチャグループ$1は、最初の2つのカンマの間のすべてになります。

+1

正直なところ私はOPで努力することなく質問に答えるのが好きではありませんが、[tag:regex]の人生はレースです –

+1

最後の '。*'は貪欲かもしれません。 (Regexの質問はこれで取り除かれているようです) – 4castle

+0

あなたは貪欲について正しいと思いますが、私はその行の最後に行くと思います。 –

2

^[^,]+,([^,]+).*を検索し、$1に置き換えることができます。

整形されていない行(コンマなしの最初のコンマの前に空の文字列を含む)がある場合は、代わりに^[^,\r\n]*,([^,\r\n]+).+のような厳密なパターンを使用できます。

+0

最初のグループが空白の場合は失敗します –

+0

行カンマなしで削除される前に。 –

+0

@WillBarnwellは、書式設定された入力を想定していました。奇妙なケースのために編集 –

0

(より一般的な意味で)事のこの種を行う別の方法は「split配列にコンマによってラインが、その配列の唯一の第二の要素を取ることです。

Yet-

s/^.*\?,// 

s/\,.*$// 

コンセプト:それを行うための別の方法は、二つの「代替」の正規表現、両方明示的に先頭にまたは行の最後に固定(と「貪欲」などであることを最初に実行することです"greediness"の重要性は非常に重要です。場合によってはと一致するようにしたいので、の最初ののカンマで停止するように、文字数を文字に一致させます。一方、2番目のケースでは、を実行します。は、最も魅力的なものを「貪欲に」識別し(空の文字列に設定します。)、「残りの部分は文字列 "

誰かがいつかこのロジックを変更するために起こっている、非常に必然的に、ので、それを行うための最も簡単最も明白な方法を見つけます。または、誰かがあなたの "巧妙でエレガントな"アプローチを破るファイルを手渡します。 「テスト可能で保守可能」と考えてください。

関連する問題