ここで明らかな何かが欠けていると確信していますが、Rに貪欲でない正規表現を使用させることはできません。
> library(stringr)
> str_match('xxx aaaab yyy', "a.*?b")
[,1]
[1,] "aaaab"
基本関数は同じように動作します。
> regexpr('a.*?b', 'xxx aaaab yyy')
[1] 5
attr(,"match.length")
[1] 5
attr(,"useBytes")
[1] TRUE
http://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.htmlab
の「貪欲な」コメントと同じように一致すると思います。
デフォルトでは、繰り返しは貪欲であるため、可能な最大数の繰り返しが使用されます。これは、? を追加することで「最小」に変更できます。数量詞に。(おおよその一致を可能にする量指定子が他にもあります。TRE のドキュメントを参照してください。)
誰かが私に何が起こっているのか説明してもらえますか?
アップデート。クレイジーなのは、他のいくつかのケースでは、貪欲でないパターンが期待どおりに動作することです。
> str_match('xxx <a href="abc">link</a> yyy <h1>Header</h1>', '<a.*>')
[,1]
[1,] "<a href=\"abc\">link</a> yyy <h1>Header</h1>"
> str_match('xxx <a href="abc">link</a> yyy <h1>Header</h1>', '<a.*?>')
[,1]
[1,] "<a href=\"abc\">"