获得模式的第一个匹配项
问题描述:
我对正则表达式很陌生,所以我可能看起来很傻,但是我做了很多搜索,而且我无法自己找到它。获得模式的第一个匹配项
原始字符串:
blabla\ni want that\nblabla\nblabalbla\nblabla
我希望得到什么:一个字符串的
[1] i want that
即第一次出现之间有两个\ n
我试着用GSUB做到这一点。它似乎很容易,但我被困住了。
我使用R 3与PCRE synthax
感谢
答
我们可以使用正则表达式基本与sub
从的开始(^
)匹配零个或多个字符不属于\n
([^\n]*
)然后是一个或多个不是\n
的字符,作为一个组(([^\n]+)
)捕获,然后将字符截取到字符串的末尾,并将其替换为该捕获组的反向引用(\\1
)
sub("^[^\n]*\n([^\n]+).*", "\\1", str1)
#[1] "i want that"
欢迎来到Stack Overflow!请告诉你的尝试和他们的结果。 – Vincent