R中的正则表达式:将字符串开头的单词提取到一个特殊字符
我有一个像“JOHN_DOE”这样的字符串,想提取“JOHN”。约翰的身长可变 我试过了R中的正则表达式:将字符串开头的单词提取到一个特殊字符,r,regex,R,Regex,我有一个像“JOHN_DOE”这样的字符串,想提取“JOHN”。约翰的身长可变 我试过了 regmatches(“^[A-Z],”JOHN\u DOE”),但它不起作用。我们可以使用sub匹配字符,后跟一个单词,并将其替换为” 如果第二个单词后面有更多字符,请添加*以匹配该单词后面的字符(\\w+) 人们不需要stringr来做这件事,但我觉得它很方便 从行首匹配任何大写或小写字母,零次或多次匹配[a-zA-Z]*,但不匹配下划线字符 library(stringr) x <- "JOH
regmatches(“^[A-Z],”JOHN\u DOE”),但它不起作用。我们可以使用
sub
匹配字符,后跟一个单词,并将其替换为”
如果第二个单词后面有更多字符,请添加*
以匹配该单词后面的字符(\\w+
)
人们不需要stringr来做这件事,但我觉得它很方便
从行首匹配任何大写或小写字母,零次或多次匹配[a-zA-Z]*
,但不匹配下划线字符
library(stringr)
x <- "JOHN_DOE"
str_extract(x, pattern = "^[a-zA-Z]*[^\\_]")
库(stringr)
x您可以使用以下代码来获得所需的输出:
stru-extract(x,“^[A-z]+(?=\ \ \ \ \ \”)
@akurn,如果我传递像“JOHN_DOE.M”这样的字符串,它将返回“JOHN.M”。我该如何解决这个问题?@MehdiZare谢谢你的评论。我更新了它sub(“\uw+.*”、“”、“JOHN\u DOE.M”)#[1]“JOHN”
sub("_\\w+.*", "","JOHN_DOE.M")
#[1] "JOHN"
library(stringr)
x <- "JOHN_DOE"
str_extract(x, pattern = "^[a-zA-Z]*[^\\_]")