使用 stringr 匹配所有换行符
Match all newline characters using stringr
我有一个包含随机换行符的文本 \n
。我想在某个短语之后提取该文本的一部分。
text <- "Lorem ipsum dolor sit amet, \nconsectetur adipiscing elit, \nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \nDuis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. \nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
我想从短语 Duis
中提取文本直到结尾。我的尝试如下
str_extract(text, "(Duis.+)")
[1] "Duis aute irure dolor in reprehenderit in voluptate velit esse "
str_extract(text, "(Duis.+)(\s.*)")
[1] "Duis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. "
我想要的输出
"Duis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. \nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
不替换原文\n
如何实现目标?
您可以保留原始文本,并在更改后创建一个变量来保存此文本,这意味着您可以执行以下操作
var oldText = "myText";
var newText = oldText.split("\n");
console.log(newText)
- 这将 return 你在数组中的 \n 之后的每个部分,你可以 select 从数组索引
中你想要的部分
您可以使用 [\s\S]
匹配所有内容,包括新行。
stringr::str_extract(text, 'Duis[\s\S]*')
[1] "Duis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. \nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
我有一个包含随机换行符的文本 \n
。我想在某个短语之后提取该文本的一部分。
text <- "Lorem ipsum dolor sit amet, \nconsectetur adipiscing elit, \nsed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \nDuis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. \nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
我想从短语 Duis
中提取文本直到结尾。我的尝试如下
str_extract(text, "(Duis.+)")
[1] "Duis aute irure dolor in reprehenderit in voluptate velit esse "
str_extract(text, "(Duis.+)(\s.*)")
[1] "Duis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. "
我想要的输出
"Duis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. \nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
不替换原文\n
如何实现目标?
您可以保留原始文本,并在更改后创建一个变量来保存此文本,这意味着您可以执行以下操作
var oldText = "myText";
var newText = oldText.split("\n");
console.log(newText)
- 这将 return 你在数组中的 \n 之后的每个部分,你可以 select 从数组索引 中你想要的部分
您可以使用 [\s\S]
匹配所有内容,包括新行。
stringr::str_extract(text, 'Duis[\s\S]*')
[1] "Duis aute irure dolor in reprehenderit in voluptate velit esse \ncillum dolore eu fugiat nulla pariatur. \nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."