フォーラム: 一般話題(質疑・要望等) (スレッド #41974)

質問:正規表現でCSVファイルのフィールド4を,数字の列と数字以外の列に区分したい。 (2020-03-10 08:04 by (del#106061) #84491)

フィールド4に「数字と漢字」があります。
1,2,3,値段A,5,6
1,2,3,400,5,6
1,2,3,値段B,5,6
1,2,3,700,5,6

1,2,3,値段A,,5,6
1,2,3,,400,5,6
1,2,3,値段B,,5,6
1,2,3,,700,5,6
よろしくお願いします。
(最終更新: 2020-03-10 08:07 by (del#106061))

メッセージ #84491 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: 質問:正規表現でCSVファイルのフィールド4を,数字の列と数字以外の列に区分したい。 (2020-03-10 20:40 by AC #84495)

知恵袋で質問した方がいいでしょうね。

置換前「^([^,]*),([^,]*),([^,]*),(?:([^\d,]+)|(\d*))」
置換後「$1,$2,$3,$4,$5」
※カギ括弧は無視すること。
※実際の CSV の内容によりカスタマイズが必要。

サクラエディタでは正規表現 DLL が差し替え可能です。
おそらく bregonig.dll を使用していると思いますが、
Bregexp.dll for SAKURA の場合は使える正規表現が異なります。
検索ウィンドウか置換ウィンドウを表示するとどちらが有効か、
あるいはどちらも無効か、確かめられます。
上のパターンは bregonig.dll で試しています。

1,2,3,5,6 というフィールド値は明らかにダミーですが
CSV には方言が多いらしく、ダミーから正規表現パターンは作れません。
匿名掲示板でこういう回答が与えられるのを見ました。
  置換前「^(1),(2),(3),(?:([^\d,]+)|(\d*))」
  置換後「$1,$2,$3,$4,$5」
与えられた条件からはこれも間違いではないわけです。
他人にはわかりません。引用符のあるなしもわかりません。
ベストアンサー #84491 への返信

メッセージ #84495 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: 質問:正規表現でCSVファイルのフィールド4を,数字の列と数字以外の列に区分したい。 (2020-03-11 19:29 by (del#106061) #84515)

メッセージ #84515 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Excelでチャレンジしてみた。 (2020-03-13 23:39 by (del#106061) #84536)

(参考)Excelのワークシート関数で正規表現を使う
https://qiita.com/ktyubeshi/items/74228f18498224c7427d
"’=IFERROR(REGEXP(D1, ""\d+""),"""")"
"’=IFERROR(REGEXP(D1, ""\D+""),"""")"
#84515 への返信

メッセージ #84536 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: Excelでチャレンジしてみた。 (2020-03-13 23:49 by (del#106061) #84537)

ダブルコーテーションが多い。増えた?
#84536 への返信

メッセージ #84537 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする