
正規表現の最短マッチについて教えてください。
以下のような文字列を正規表現を使ってマッチさせます。
まず、検索ボックスに 「".+"」と入力します。
すると一番左端のダブルクォーテーションから、右端のダブルクォーテーションまで全てが選択されます。解説によると量指定子はデフォルトだとなるべく長い文字にマッチされるとのことです。
"apple", "apples", "pineapple"
で、一番短い文字列でマッチさせたい場合は量指定子の後に「?」をつけてやるといいようです。
実行してみると添付画像のように各々の文字列が別個に選択されています。
初心者の素朴な疑問なのですがダブルクォーテーションで囲んだ文字列と文字列の間のカンマはマッチしないのでしょうか?
「".+?"」だとカンマは任意の一文字として該当しないのですか?
apple「", "」apples「 ","」pineapple
学習はじめたばかりの初心者です。少し混乱しています。どなかた分かりやすく教えてください。よろしくお願いいたします。
最短マッチということで["apple"]、["apples"]、["pineapple"]よりもダブルクォーテーションで囲まれた「[", "][", "]こちらの方が短いのではないかと素人目に思えてしまいます。

A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
最短マッチの意味の誤解です。
「マッチする全ての中で一番短い物」ではないです。
まず、左端が固定されます。
「"apple"」の左の「"」と、「".*?"」の左の「"」ですね。
次に、「"a」「"ap」・・・と1文字ずつ延ばしながら最初にマッチしたものを採用するというのが最短マッチの意味です。
左端を固定した状態で延ばしながら何度かマッチしても止めずに繰り返し、最後にマッチしたのもを採用するのが最長マッチ「".*"」です。
で、マッチした文字列「"appple"」は検索対象文字から取り除かれ、その次の文字である「,」から次の探索が始まり、正規表現の左端である「"」が探されます。
つまり、同じ文字がマッチしたとして複数回選択されることは無いです。
No.1
- 回答日時:
「".+?"」はまず「"apple"」にヒットします。
ヒットした次の文字から再検索をはじめるので「,」には反応しません
「"」にかこまれた文字をすべてヒットさせたいならこうします
(javascript)
var str=`"apple", "apples", "pineapple"`;
var reg=/(?<=").+?(?=")/g;
console.log(str.match(reg));
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
初デートのあと返信が極端に遅...
-
マッチングアプリで知り合った...
-
マッチングアプリで医学部の人...
-
恋愛感情がない相手にも自宅住...
-
ログファイルを後ろから検索し...
-
こいつやお前と呼ぶ男性心理は?
-
マッチングアプリで再マッチし...
-
ネットをしていると時々ACTMA...
-
マッチングアプリについてです...
-
マッチングアプリでマッチした...
-
タバコの味ってライターで変わ...
-
お見合い初対面でちゃん付け
-
なよなよした男性に嫌悪感
-
未成年はzippo購入不可ですか?
-
Tinderでアカウントを変えたら...
-
一般的に、お見合い結婚は負け...
-
気になる人と初デートで嘔吐し...
-
年上の女性と付き合いたいです...
-
3週間も会えないほど忙しい仕...
-
創価学会などの新興宗教信者の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
恋愛感情がない相手にも自宅住...
-
創価学会などの新興宗教信者の...
-
マッチングアプリで知り合った...
-
初デートのあと返信が極端に遅...
-
マッチングアプリで再マッチし...
-
マッチングアプリで再マッチし...
-
未成年はzippo購入不可ですか?
-
タバコの味ってライターで変わ...
-
気になる人と初デートで嘔吐し...
-
ログファイルを後ろから検索し...
-
デートの誘いに対する曖昧な返...
-
マッチとライター。どちらがコ...
-
周りから
-
マッチングアプリでマッチした...
-
なよなよした男性に嫌悪感
-
こいつやお前と呼ぶ男性心理は?
-
【至急】エクセルで複数のファ...
-
マッチングアプリでマッチした...
-
マッチングアプリで医学部の人...
-
年上の女性と付き合いたいです...
おすすめ情報