r - 如何提取所有内容,直到第一次出现模式

原文 标签 r regex stringr

我正在尝试使用R中的stringr包从字符串中提取所有内容,直到首次出现下划线。

我尝试过的

str_extract("L0_123_abc", ".+?(?<=_)")
> "L0_"


关闭但没有雪茄。我怎么得到这个?另外,理想情况下,我希望可以轻松扩展一些内容,以便可以在第一和第二下划线之间获取信息,并在第三下划线之后获取信息。

最佳答案

要获取L0,您可以使用

> library(stringr)
> str_extract("L0_123_abc", "[^_]+")
[1] "L0"


[^_]+匹配除_之外的1个或多个字符。

另外,您可以使用_分割字符串:

x <- str_split("L0_123_abc", fixed("_"))
> x
[[1]]
[1] "L0"  "123" "abc"


这样,您将拥有所需的所有子字符串。

同样可以通过

> str_extract_all("L0_123_abc", "[^_]+")
[[1]]
[1] "L0"  "123" "abc"

关于r - 如何提取所有内容,直到第一次出现模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40113963/

相关文章:

r - 比igraph::random_walk()更有效的方式在过渡矩阵上运行随机游走

php - 字母后的正则表达式数字

php - 将特定字符转换为法语字母

使用向量而不是 R 中的正则表达式从字符串中删除多个单词

r - 字符串:通过字符向量提供模式来替换字符串

r - 删除时间戳记的结尾

javascript - 将R data.frame转换为Javascript数组

r - 使用 rbind append 数据帧的神秘问题

r - 计算R中偏差的平方和

java - 匹配两个字符串,一个与x匹配,另一个与任何字符匹配