[解決済み] .*?と.*の正規表現の違いは何ですか?
2022-02-08 07:16:08
質問内容
正規表現を使って文字列を2つに分割しようとしています。文字列は以下のようなフォーマットになっています。
text to extract<number>
私は、これまで
(.*?)<
と
<(.*?)>
はうまく動作するのですが、正規表現を少し読んでから、なぜ
?
を表現しています。このサイトで見つけてからそうしているだけなので、何が違うのかよくわからないのですが。
どのように解決するのですか?
欲張り量詞と非欲張り量詞の違いである。
入力を考えてみましょう
101000000000100
.
使用方法
1.*1
,
*
は貪欲です。最後までマッチして、次に
1
を残すことになります。
1010000000001
.
.*?
は欲がない。
*
は何もマッチしませんが、マッチするまで余分な文字にマッチしようとします。
1
最終的に
101
.
すべての量詞は非貪欲モードを持っています。
.*?
,
.+?
,
.{2,6}?
そして、さらに
.??
.
あなたの場合、似たようなパターンで
<([^>]*)>
- は大なり記号以外にマッチします(厳密には、大なり記号以外の0文字以上にマッチします)。
>
間に
<
と
>
).
参照 数量化チートシート .
関連
-
[解決済み] Powershellで完全一致の文字列のみを置換する
-
[解決済み] TCL/EXPECTで$expect_outを使用して変数を割り当てるにはどうすればよいですか?
-
[解決済み] 正規表現における非捕捉グループとは何ですか?
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] 正規表現における「lazy」「greedy」の意味とは?
-
[解決済み] jQueryセレクタの正規表現
-
[解決済み] re.searchとre.matchの違いは何ですか?
-
[解決済み] Java文字列を改行で分割する
-
[解決済み] 数字のみの正規表現
-
[解決済み】文字列を分割しても、区切り文字を維持する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】正規表現でのコロン記号の使用について
-
[解決済み] 正規表現で複数の単語を任意の順序で並べる [重複]。
-
[解決済み] (grep) 非 ASCII 文字にマッチする正規表現ですか?
-
[解決済み] Kibanaクエリの完全一致
-
[解決済み] 正規表現[^ΘdΘs]と[ΘdΘs]の違いは何ですか?
-
[解決済み] sedで非欲張り(消極的)な正規表現マッチング?
-
[解決済み] RegexにおけるOR条件
-
[解決済み] 01-12]レンジが期待通りに動作しないのはなぜですか?
-
[解決済み] 正規表現 - Gmailアドレスの検証
-
[解決済み] 非欲にマッチする正規表現はどのように書けばよいですか?重複