2017-02-24 14 views
0

私はCSVファイルを解析するプログラムを持っています。残念ながら、セパレータがカッコ内にある場合、プログラムは処理できません。今私は、カッコ内にある場合、区切り記号を見つける正規表現を検索したいと思います。正規表現 - カッコ内のセパレータのみをマッチする

Name;Zip;Comment 
Smith,12345;"Weird comment with ; inside" 

次のRegexはコメントフィールド全体を返しますが、括弧内の文字は、あなたがこの場合、この

r\".*(;).*"\ 

のようないくつかの正規表現を試すこと

("[^;]*;[^;]*") 

答えて

0

、正規表現は、コメント全体と一致します。ただし、グループ1(括弧内のセクション)をキャプチャすると、二重引用符で囲まれた;と一致します。

+0

を見ますどの捕捉グループが使用されるべきかを指定する可能性はない。正規表現の完全一致は、私の選択した文字に置き換えられます。 – user1126181

0

あなたはコメント全体をキャプチャし、キャプチャグループを使用して、セミコロンを交換するには、以下の正規表現を使用する必要があります。

(".*?)(;\s)(.*?") 

input  >> Name;Zip;Comment 
       Smith,12345;"Weird comment with ; inside" 
match  >> (".*?)(;\s)(.*?") 
replace with >> $1$3 
output  >> Name;Zip;Comment 
       Smith,12345;"Weird comment with inside" 

は、残念ながら私はdemo/explanation

関連する問題