No.5ベストアンサー
- 回答日時:
No.3様
> (.*?)xxxとすれば「123xxx456xxx789xxx」の「123」がヒットします
> (.*)xxxだと「123xxx456xxx789」がヒットします
質問者様
> *や?は前の文字にかかると思うのですが、何故、(.*?)では後ろの文字にかかるのですか?
後ろの文字ではなく、ちゃんと前の文字にかかっています。
「(.*?)」も「(.*)」も 「任意の文字列」を表しているので
「(.*?)xxx」も「(.*)xxx」も、 「 後ろに、xxxという文字列が続く「任意の文字列」 」という意味になります。
違いは何かというと、
「(.*?)xxx」は「任意の文字列」部分が最も短くなるような状態にマッチ(適合)します。
つまり「任意の文字列」部分が「123」(後ろにxxxが続く)にマッチすることになります。
「(.*)xxx」は「任意の文字列」部分が最も長くなるような状態にマッチします。
つまり「任意の文字列」部分が「123xxx456xxx789」(後ろにxxxが続く)にマッチすることになります。
No.3
- 回答日時:
いっぱんに「.*?」は後ろに続く文字への最短マッチです
(.*?)xxxとすれば「123xxx456xxx789xxx」の「123」がヒットします
(.*)xxxだと「123xxx456xxx789」がヒットします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
Python... 環境設定 初心者です...
-
画像生成AIのプロンプトの作り...
-
CSVファイルの複数行削除
-
google Colabでmatplotlibの描...
-
数学、プログラミング、物理、...
-
OS入ってる機器のソフト・アプ...
-
プログラミングのやり方ざっく...
-
pip --versionがエラーになる
-
HTMLソースが表示のページのも...
-
Geminiフォーム 画像生成で 人...
-
プログラミングに興味があるの...
-
アルゴリズムとコードとは何で...
-
Pythonでの文字列からfloatへの...
-
バッチファイルが保存されてい...
-
Webサイト内に埋め込んだmp4動...
-
JRのjsonファイルって使って大...
-
pythonの実行に関する質問
-
パイソンのソースコードをChatG...
-
Python 3.12.2 か一番最新のパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチングアプリで新しくアカ...
-
正規表現
-
正規表現の実行レポートは作成...
-
タグを正規表現で完全に削除
-
この正規表現の意味は?
-
謎の半角■文字を正規表現で文字...
-
文字同士の比較~抜き出し
-
文字のマッチングについて
-
Perlで別ファイルから文字列の抽出
-
/ [ 【 の文字をマッチさ...
-
置き換えについて
-
正規表現 \\b123bと^123$は同じ?
-
perlで記号除去を行いたいので...
-
リナックスの grepコマンド ...
-
正規表現で2種類ある括弧を区別...
-
記号とあらば、1文字でも全て...
-
perlのマッチでマッチしたい物...
-
正規表現の展開
-
パイプ以外をエスケープしてマ...
-
3回以上連続する文字(どんな...
おすすめ情報
通常、*や?は前の文字にかかると思うのですが、何故、(.*?)では後ろの文字にかかるのですか?