我有一个像这样的字符串“ JOHN_DOE”,并且想要提取“ JOHN”。 JOHN的长度可变。
我尝试过 regmatches(“ ^ [A-Z] _”,“ JOHN_DOE”),但无效。
答案 0 :(得分:1)
我们可以使用sub
来匹配字符_
和一个单词,然后将其替换为""
sub("_\\w+", "", "JOHN_DOE")
#[1] "JOHN"
如果第二个单词后面有更多字符,请添加.*
以匹配该单词(\\w+
)之后的字符
sub("_\\w+.*", "","JOHN_DOE.M")
#[1] "JOHN"
答案 1 :(得分:0)
一个人不需要纵梁来执行此操作,但是我发现它很方便。
从行^
开始匹配任何大写或小写字母字符,零次或多次[a-zA-Z]*
,但不下划线字符[^\\_]
library(stringr)
x <- "JOHN_DOE"
str_extract(x, pattern = "^[a-zA-Z]*[^\\_]")
答案 2 :(得分:0)
您可以使用以下代码来获得所需的输出:
str_extract(x, "^[A-z]+(?= \\_)")