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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Google スプレッドシート

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

正規表現

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

Q&A

解決済

1回答

3957閲覧

正規表現 ^|[^0-9]+ の意味?

yoichiyy

総合スコア55

Google スプレッドシート

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

正規表現

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

0グッド

0クリップ

投稿2020/04/22 22:21

Googleスプレッドシート内で正規表現を使えるようになるべく、学習中です。

”Aに82円とBに254円で合計336円”
という文字列に対して、

=split(REGEXREPLACE(REGEXEXTRACT(B26,"[0-9].*[0-9]"),"^|[^0-9]+",""),"")
という関数を適用することで、

"82 254 336"
このように3つのセルに分けることができるという、「模範例」がありました。

わからないのは、regexreplaceの第2番目引数
"^|[^0-9]+" の ^| の役割です。

●最初の^は、 ここでは「行頭」を表す
●次の|は、 OR

◎つまりここでは、
「行頭」(?)または、【1文字以上の、数字以外の文字列】を、アンダースコアに置き換えろ
という命令かという解釈・・・なのですが、
やはり最初の ^| の意味がわからない…。

※この部分(^|)を外して、問題なく動くかどうかを試したところ、同じ結果を得られました。

いったいこの部分は、どういうはたらきをしているのでしょうか?

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

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

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

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

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

Zuishin

2020/04/22 23:11

どこに書いてあったのかを必ず記述してください。 正規表現だけでなく関数の使い方自体怪しいです。
Zuishin

2020/04/23 00:22

意図は順番に読んでいけば書いてあります。^| がない場合の出力も書いてありますね。
guest

回答1

0

ベストアンサー

参照元を書かないと、作成者の意図がわからないですよ。
以下のサイトを見ての質問ですよね?

https://www.officeisyours.com/entry/2019/05/13/110345

サイトにちゃんと書いてますが、1つ目の数字が 0から開始の場合に、
数値化されて 0が消えない為の役割が ^| のようです。

^| によって 必ず先頭に "_" が入るので、SPLIT前の例文の状態は

^| あり _82_254_336
^| なし 82_254_336

となります。
SPLITで分割すると 同じように見えますが、82の入ったセルだけ数値(右寄せ)になってます。

”A君の電話番号は 09011112222で、B君の電話番号は 09033334444です”

の例を使うと 動きの違いが実感できるんじゃないでしょうか。

投稿2020/04/22 23:33

sawa

総合スコア3002

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

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

yoichiyy

2020/04/23 00:20

下の解説に目が行っておらず、失礼いたしました。 とてもわかりやすくご解説くださり助かりました。 サンプルページまで見つけて頂いてのご回答…どうもありがとうございました!
sawa

2020/04/23 00:25

私も読んだことあるサイトだったので覚えてました。正規表現は頭から湯気でそうになりますね。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問