2017-02-10 45 views
0

我对正则表达式很陌生,所以我可能看起来很傻,但是我做了很多搜索,而且我无法自己找到它。获得模式的第一个匹配项

原始字符串:

blabla\ni want that\nblabla\nblabalbla\nblabla 

我希望得到什么:一个字符串的

[1] i want that 

即第一次出现之间有两个\ n

我试着用GSUB做到这一点。它似乎很容易,但我被困住了。

我使用R 3与PCRE synthax

感谢

+1

欢迎来到Stack Overflow!请告诉你的尝试和他们的结果。 – Vincent

回答

0

我们可以使用正则表达式基本与sub从的开始(^)匹配零个或多个字符不属于\n[^\n]*)然后是一个或多个不是\n的字符,作为一个组(([^\n]+))捕获,然后将字符截取到字符串的末尾,并将其替换为该捕获组的反向引用(\\1

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