R 从包含三个以上字母的字符串中提取第一个单词
所以我有一个字符串: “我是一家卫生机构的牙医。” 我想提取包含三个以上字母的第一个单词,并将其放入datatable中的一个新列中,即本例中的“牙医”。我想我必须使用strsplit,但我不知道如何继续 谢谢你的帮助 问候,,R 从包含三个以上字母的字符串中提取第一个单词,r,string,R,String,所以我有一个字符串: “我是一家卫生机构的牙医。” 我想提取包含三个以上字母的第一个单词,并将其放入datatable中的一个新列中,即本例中的“牙医”。我想我必须使用strsplit,但我不知道如何继续 谢谢你的帮助 问候,, Antje试试这个简单的解决方案: string<-"I am a dentist in a health organization." words<-unlist(strsplit(string," ")) words[which.max(nchar(wo
Antje试试这个简单的解决方案:
string<-"I am a dentist in a health organization."
words<-unlist(strsplit(string," "))
words[which.max(nchar(words)>3)]
[1] "dentist"
string试试这个简单的解决方案:
string<-"I am a dentist in a health organization."
words<-unlist(strsplit(string," "))
words[which.max(nchar(words)>3)]
[1] "dentist"
string从一开始匹配最短的字符序列“^”
,“*?”
,然后是一个4个或更多字符的单词,“\\b(\\w{4,}\\b”
,然后是剩余的文本,“*”
,并用第一个(也是唯一的)捕获组替换所有字符(即,与带括号的正则表达式部分的匹配)
从一开始,匹配最短的字符序列,“^”
,“*?”
,后跟一个包含4个或更多字符的单词,“\\b(\\w{4,}\\b”
,后跟剩余的文本,“*”
,并用第一个(也是唯一的)捕获组替换所有字符序列(即,与带括号的正则表达式部分的匹配)
\w{4,}
匹配任何单词字符(等于[a-zA-Z0-9))
{4,}
量词-匹配次数介于4次和无限次之间,尽可能多地匹配,根据需要返回(贪婪)
非捕获组(?:\\w+)
?
量词-匹配0到1次,尽可能多次,根据需要返回(贪婪)
+
量词-在一次和无限次之间进行匹配,尽可能多地匹配,根据需要返回(贪婪)
strng
\w{4,}
匹配任何单词字符(等于[a-zA-Z0-9))
{4,}
量词-匹配次数介于4次和无限次之间,尽可能多地匹配,根据需要返回(贪婪)
非捕获组(?:\\w+)
?
量词-匹配0到1次,尽可能多次,根据需要返回(贪婪)
+
量词-在一次和无限次之间进行匹配,尽可能多地匹配,根据需要返回(贪婪)
strng欢迎来到StackOverflow!请阅读了解如何提问,并欢迎来到StackOverflow!请阅读了解如何提问,并提供
# input data frame
DF <- data.frame(x = c("I am a dentist in a health organization.",
"I am a dentist in a health organization."))
pat <- "^.*?\\b(\\w{4,})\\b.*"
transform(DF, longword = sub(pat, "\\1", x))
x longword
1 I am a dentist in a health organization. dentist
2 I am a dentist in a health organization. dentist