🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

正規表現

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

Q&A

解決済

1回答

22113閲覧

正規表現で「特定の文字から、特定の文字まで」を指定するには?

mvc_php

総合スコア19

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

正規表現

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

1グッド

2クリップ

投稿2019/10/18 09:33

#Google Spreadsheetで正規表現関数「REGEXEXTRACT」を使用して特定の1文字から~特定の1文字の間の文字列を取り出したいと考えています。

下記のようにハイフンの間の文字列を指定しましたがハイフンも含まれてしまいます。

-.+-

マッチ結果)10a01-charcoal-f  → -charcoal-

ご教示をお願いしたいこと

1)ハイフンを含まず間の文字列をマッチさせるにはどうしたら良いか。
2)2つ目に出現するハイフン以降から次のハイフンの間をマッチさせるにはどうしたら良いか。

宜しくお願い致します。

###▼ テキスト1
10a01-charcoal-f
10a02-black-s
10a03-ivory-m

@マッチさせたい文字列1(ハイフンとハイフンの間)
10a01-charcoal-f  → charcoal
10a02-black-s    → black
10a03-ivory-m    → ivory


###▼ テキスト2
a10fm-ct10a-black-f
a10fm-ct10b-pink-s
a10fm-ct10c-beige-m

@マッチさせたい文字列1(2つ目のハイフン以降からハイフンの間)
a10fm-ct10a-black-f  → black
a10fm-ct10b-pink-s   → pink
a10fm-ct10c-beige-m  → beige

ha_horse👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

1)ハイフンを含まず間の文字列をマッチさせるにはどうしたら良いか。

取り出したい文字列部分を括弧で囲みます。
-(.+)-

2)2つ目に出現するハイフン以降から次のハイフンの間をマッチさせるにはどうしたら良いか。

-.+-(.+)- -> そのまま書いた場合
-([^-]+)-[^-]$ -> 「行の中の最後の - ?? - の部分」と捉えた場合
※ ^は否定(対象文字以外)を表し、$は行の末尾を表します。

投稿2019/10/18 10:05

Kapustin

総合スコア1186

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

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

mvc_php

2019/10/23 02:43

ご教示いただきまして有難う御座います。 括弧で囲む方法があったのですね。。 大変分かりやすいご説明で理解し易かったです。 本当に有難う御座います。 末尾からハイフン以降をマッチさせるにはどうしたら良いかを考えました。 下記のようにしました。 ▼パターン [^-]+$ ▼マッチ結果 a10fm-ct10c-beige-m → m a10fm-ct10c-beige-free → free
Kapustin

2019/10/23 02:51 編集

良いと思います!ただ入力されてくる文字列の自由度によって、正規表現をどれだけ厳密に定義するかどうかも変わってきますので、そこらへんの細かい部分はご自身でバランス見ながらやって見てください。 ・上記でもともとハイフンが含まれていない場合は全文が取得されるが、それでOKかどうか等 ・ただ、(将来的にも)入力される文字列に必ずハイフンが含まれると言う保証があれば、これは考慮しなくてもセーフ ▼パターン [^-]+$ ▼マッチ結果 a10fm-ct10c-beige-m → m a10fm-ct10c-beige-free → free a10fmatccsts → a10fmatccsts ▼パターン -[^-]+$ ▼マッチ結果 a10fm-ct10c-beige-m → m a10fm-ct10c-beige-free → free a10fmatccsts → 該当なし
mvc_php

2019/11/11 10:06

有難う御座います! コメントが遅れて申し訳御座いません。 定義具合でマッチ結果が若干異なりますね。 勉強になります! バランスを見ながら、将来性を考慮してみます。 有難う御座います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問