x sapply(gregexpr("[A-Za-z]\\w+", x), -6ren">
gpt4 book ai didi

regex - 如何在 R 中使用正则表达式查找文本中最长的字符串

转载 作者:行者123 更新时间:2023-12-01 13:47:37 25 4
gpt4 key购买 nike

给定一个字符串 x,我可以使用 gregexpr("[A-Za-z]\w+", x) 计算该字符串中的单词数(长度)。

> x<-"\n\n\n\n\n\nMasters Publics\n\n\n\n\n\n\n\n\n\n\n\n\nMasters Universitaires et Prives au Maroc\n\n\n\n\n\n\n\n\\n\n\n\n\nMasters Par Ville\n\n\n\n\n\n\n\n\n\n\n\n\n"
> sapply(gregexpr("[A-Za-z]\\w+", x), function(x) sum(x > 0))
[1] 11

但是,如何在 R 环境下使用正则表达式检索最长附加字符串中的单词数(带空格而不是\n)

在此示例中,它将是“Masters Universitaires et Prives au Maroc”,长度为 6。

提前致谢。

最佳答案

我会用

解决它
x <- "\n\n\n\n\n\nMasters Publics\n\n\n\n\n\n\n\n\n\n\n\n\nMasters Universitaires et Prives au Maroc\n\n\n\n\n\n\n\n\\n\n\n\n\nMasters Par Ville\n\n\n\n\n\n\n\n\n\n\n\n\n"
max(nchar(gsub("[^ ]+", "", unlist(strsplit(trimws(x), "\n+"))))) + 1

将修剪后的字符串拆分成行,取消列出结果,删除空格以外的所有字符,获取最长的项目并添加一个。 [^ ]+ 是一个正则表达式,它匹配一个或多个(由于 + 量词)除了(如 [^...] 是一个否定字符类)一个空格。

参见 IDEONE demo .

关于regex - 如何在 R 中使用正则表达式查找文本中最长的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34694366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com