私はちょっとしたRegex初心者のように少し問題があります。それが問題ならば、私は.NETのRegexクラスを使っています。文字列に一致するネゲートされた文字クラス
まず、私は上の正規表現を使用しているデータの記述:ここ
が私の表現である:
(".*[^".]);(.*")
これは、彼らがより大きな行の一部だ(これらの2行を一致しますメインフレームコンピュータでのテーブルが、基本的に次のようになります):
例1:7906143476.;180.;903.;1.;1970.;8.;42.;1.;327.;"SST9001";"S;T GORANS SJH "
例2:2.;"1;AVD INGENJOR ";"N";"J";" ";
もこれを一致して(私はそれのためではない一致が好きなんでしょう):
;"U";33.75;777.;" ";
正規表現の意味は、すべてのセミコロンを見つけることです(;)以内引用符( ")を付けてコロン(:)で置き換えます。引用符の前後にセミコロンが付いているとは限りません(例1のように)。
7906143476.;180.;903.;1.;1970.;8.;42.;1.;327.;"SST9001";"S:T GORANS SJH "
2.;"1:AVD INGENJOR ";"N";"J";" ";
そして、それは、ドットとセミコロンの前の数字の任意の数を持っているので、最後の行には、手つかずのままにしてください:私が欲しいの出力があります(。)。
私はこれらのすべての行を単一の正規表現にマッチさせたいと考えています。私はすでに複数の正規表現を持つソリューションを持っていますが、私はそれを行うより良い方法が欲しいです。私は、否定的/肯定的な先読み/後ろ向きに本当に精通していませんが、解決策がその領域のどこかにあると感じています。
私はネゲートされた文字クラス内のグループと一緒に最初に考えていたので、私は一致したくない最初の$ 1のグループである.75を打ち消すことができました。それは75の代わりに任意の数にすることができます。
私は正規表現がまったくうまくいかないので、どんな助けも素晴らしいでしょう。
ありがとうございました!
ありがとうございました!私が思うフリードルの本を読んでみる必要があります。 また、コードに優れたコメントをお寄せいただき、ありがとうございます。 –
私は確かにそれは働いていますか?私はrad正規表現デザイナーhttp://www.radsoftware.com.au/regexdesigner/でテストしました。それはうまく動作しません。 –
あなたと一緒にテスト? –