質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

2回答

6610閲覧

正規表現でcsv形式のデータからn-m個目のデータを抽出したい

yama_shichi

総合スコア1

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2021/08/05 08:38

編集2021/08/05 10:02
やりたいこと

csv形式(カンマ区切り)のデータからnカラム目からmカラム目(n<m, n,m=N)までのデータを抽出したいです。
n番目以降およびn番目以前までは確認ができましたが、nからm番目間の抽出が確認できず質問をさせて頂きます。

例えば、以下の様なデータとします。

"リンゴ","ミカン","イチゴ","ブドウ","ナシ", ...

これらから2-4個目のデータのみを抽出したいです。

"ミカン", "イチゴ", "ブドウ",

例において、上記が実現したい結果となります。

また、最後の文字列にカラムまで含んで抽出ができれば良いと考えます。
nからm番目間の抽出に関しまして回答お持ちでしたらご教授頂きたいです。
不足情報等ございましたらご指摘ください。

何卒、よろしくお願いいたします。

---追記---
利用ソフトウェア:サクラエディタ
目的:複数のデータに対してn, mを変更し、活用したいと考えております。
以下のサイトを参照させて頂き、先頭からn番目までの抽出は可能でしたが、
n-m番目を抽出する方法を導き出せず質問させて頂きました。
4-30 CSVのn番目のデータ区切りまでマッチその2

^((((?!,(([^"]"){2})[^"]$).)),){2}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2021/08/05 08:41

使うソフトは何ですか? また、どうしても正規表現でなければいけない理由がありますか?
yama_shichi

2021/08/05 09:07

ソフトはサクラエディタになります。 受領したファイルから上記の様にデータ抽出し別の文字列に置換したいと考えております。 先ずは、データを抽出、確認したうえでその後の処理を検討したく、質問させて頂いた次第になります。 質問に記載するべきでしたが、ファイルは複数存在するため、 カラムの番号を修正すれば他ファイルでも利用できる様な処理を作成したかったことも質問させて頂いた要因です。 後ほど追記いたします。
shiketa

2021/08/05 13:23

> ファイルは複数存在するため、 なればこそ、sedやawkを使う場面ではないかとおもいますけどね。 サクラエディタは名前以外は知らないのでこれにて。
guest

回答2

0

kotlin

1val text = """"リンゴ","ミカン","イチゴ","ブドウ","ナシ", ...""" 2text.replace("""^[^,]+,(([^,]+,){3})..*""".toRegex(), """$1""") 3 4"ミカン","イチゴ","ブドウ",

投稿2021/08/05 09:04

shiketa

総合スコア4061

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yama_shichi

2021/08/05 09:55

回答頂きありがとうございます。 質問に記載がなくすみません。 kotlinでの実装ではなく、サクラエディタでの実現を考えておりました。
guest

0

ベストアンサー

shell

1$ echo '"リンゴ","ミカン","イチゴ","ブドウ","ナシ", ...' | \ 2 sed -e 's/^[^,][^,]*,([^,][^,]*,[^,][^,]*,[^,][^,]*,)..*/\1/' 3 4"ミカン","イチゴ","ブドウ",

投稿2021/08/05 08:56

shiketa

総合スコア4061

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yama_shichi

2021/08/05 09:58

回答頂きありがとうございます。 質問に記載がなくすみません。 shellでの実装ではなく、サクラエディタでの実現を考えておりました。 また、2-3個目の抽出のみでなく、任意の自然数n, m (n<m)によるn-m個目のデータ抽出をしたいと考えておりました。
otn

2021/08/05 12:56

サクラエディタだと、上記が出来ないと言うことですか? この程度の機能が無いと無理では?
KojiDoi

2021/08/06 06:44

> また、2-3個目の抽出のみでなく、任意の自然数n, m (n<m)によるn-m個目のデータ抽出をしたい エクセルかgoogleスプレッドシートにデータもっていって処理すればいいのでは? そもそもエディタ上での「抽出」って、何がどうなっていれば「抽出」出来たことになるのでしょうか。
yama_shichi

2021/08/13 03:22

回答頂いた皆様からのコメントを受け、仰る通り、役割を考えshellで実装しました。 回答・コメント頂きありがとうございます。拙い質問となり失礼いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問