使用stringi和gsub的不同输出(在同一个字符串上使用相同的模式)

Dar*_*can 5 r gsub stringi

我想知道为什么我通过使用gsub和stringi获得两个不同的输出字符串.元字符是否"." 不包括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"
Run Code Online (Sandbox Code Playgroud)

luk*_*keA 3

一种方法是设置.为也匹配行终止符,而不是停在一行:

stri_replace_all_regex(string, " .*?http"," http", 
                       opts_regex = stri_opts_regex(dotall = TRUE))
Run Code Online (Sandbox Code Playgroud)