第一次出现模式

时间:2017-02-10 12:56:38

标签: r regex

我对正则表达式很新,所以我可能看起来很傻,但我已经做了很多搜索,而且我自己无法得到它。

原始字符串:

blabla\ni want that\nblabla\nblabalbla\nblabla

我想得到什么:

[1] i want that

即。第一次出现两个\ n之间的字符串

我试着用gsub来做。这似乎很容易,但我被困住了。

我正在使用R和PCRE synthax

感谢

1 个答案:

答案 0 :(得分:0)

我们可以使用sub的基本正则表达式来匹配从字符串的开头(\n)起的非[^\n]*^)的零个或多个字符通过\n,然后是一个或多个不是\n的字符,捕获为一个组(([^\n]+)),后跟字符串到字符串的末尾,并将其替换为反向引用(该被捕获群体的\\1

sub("^[^\n]*\n([^\n]+).*", "\\1", str1)
#[1] "i want that"