質問

私はじめにこの言葉を私は完全にアマチュアでRegExのみを始め数日前です。ようにしている、問題解決のためのフォーマットファイルとしてヒット分好みの特定の型のデータです。入力ファイル構造のようになります:

Two words,Word,Word,Word,"Number, number"

うな形式でしんでみてはいかがでしょうか。

"Two words","Word",Word","Word","Number, number"

私た正規表現パターン

s/,/","/g

仕事以外のものに置き換え、コンマ、すでに引用番号、番号、原因を分野別にファイルです。基本的にIを修正する必要があ私のパターンに交換カンマを","[見積もりにカンマを引用"ですが、その場合のみこのカンマで区切なれます。なお、その他の分野において空間の後にカンマを区切りの数の一覧です。

から受けることになってしまいを書き上げ

s/,[A-Za-z0-9]/","/g

しながら、適切な文字列置き換え、コンマ以下の書である。かつてbackreferencesと考えるかが必要です。私の理解したこと

s/(,)[A-Za-z0-9]\b

べきでは来ない。

誰にでもして考えたんですか?

役に立ちましたか?

解決

s/,([^ ])/","$1/ マッチの","その後"を用いていたスペース"ケートを用いていたスペース、交換のもと撮影した。

によっては正規表現エンジンだけを使用されることもありますので、書き \1 その他の見て見ぬふりをするのではなく $1.

を使用している場合、Perl又はその他のアクセスを正規表現エンジンの否定先読み, s/,(?! )/","/ (a","not後にスペース)です。

ご入力のように見えCSVものばってんでもよく解析で実CSVパーサによregexes.もののその他の奇コーナーの場合に心配は一切無用でした。

他のヒント

私の経験していることではないのregexes.とって、CSVファイルにより取り扱い実CSV parsers.んだタグ言語で難しいが、perl、使用テキスト::CSV_XSたDBD::CSV(させて頂き、ありがとうSQLへのアクセスをCSVファイルまたはテーブルはもちろん、使用テキスト::CSV_XSになります。遠来の圧延を自分でより強固によregexes.

この質問には: 置き換えパターン内字正規表現を使って電話.

この仕事:

s/"([^"]*)"|([^",]+)/"$1$2"/g

まいそうだ"Sed.

お客様がパターンをしているように思われ矛盾したいという毎に項目のカンマで区切られていて引用であるといわれている。その他、いただいている領域の計算複雑さの正規表現ではありません。

を通じてsed、コマンドすることはできない。

  sed 's/[ \"]*,[ \"]*/\", \"/g'

なお残っていたのdoublequotesでの最初と最後の文字列になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top