5

gsub と stringi を使用して 2 つの異なる出力文字列を取得する理由を知りたいです。メタ文字「。」stringi に改行を含めませんか? stringi は「行ごと」に読み取りますか?

ちなみに、stringi で「正しい」置換を実行する方法が見つからなかったため、ここでは gsub を使用する必要がありました。

string <- "is it normal?\n\nhttp://www.20minutes.fr"

> gsub(" .*?http"," http", string)
[1] "is http://www.20minutes.fr"

> stri_replace_all_regex(string, " .*?http"," http")
[1] "is it normal?\n\nhttp://www.20minutes.fr"
4

2 に答える 2

2

デフォルトでは -- 歴史的な理由から、このチュートリアルを参照してください-- ほとんどの正規表現エンジンでは、ドットは改行文字と一致しません。@lukeA が示唆したように、改行に一致させるには、dotallオプションをTRUEstringi 正規表現ベースの関数に設定できます。

ちなみに、gsub(..., perl=TRUE)stringi と一致する結果が得られます。

于 2015-05-01T19:11:18.167 に答える