我是r的新手,并试图创建一个正则表达式,该正则表达式将输入向量中超过5个字母的任何单词缩写(例如,饥饿会变得饥饿)。目前,我正在使用gsub,但是它将删除单词的前5个字母而不是五个字母,而不是后面的字母。
当前代码:
gsub(pattern = "[a-z]{5}", replacement = ".", x = text_converter)
答案 0 :(得分:0)
因此,这是在注释部分添加解释后的编辑版本: 我们需要以下功能:
您的字符串是“非常可靠的狗跳过篱笆”
strsplit会在字符串中有空格时拆分该字符串,并为您提供这些单词的列表
public static class PathHelper
{
public static string GetWindowsFileNameWithoutExtension(string filePath)
{
int backslashIndex = filePath.LastIndexOf('\\');
int dotIndex = filePath.LastIndexOf('.');
if (backslashIndex >= 0 && dotIndex >= 0 && dotIndex > backslashIndex)
{
return filePath.Substring(backslashIndex + 1, dotIndex - backslashIndex - 1);
}
if (dotIndex >= 0)
{
return filePath.Substring(0, dotIndex);
}
return Path.GetFileNameWithoutExtension(filePath);
}
}
对步骤2中的列表中的每个单词套用函数gsub(“([[a-zA-Z] {5})。*”,“ \ 1”,x)。每个单词中的字母不超过5个。
[[1]]
[1] "the" "very" "reliable" "dog" "jumped" "over" "the" "fences"
最终以折叠方式粘贴,将步骤3的字符串向量连接为字符串,然后split_reduce函数将此字符串作为最终输出返回。
[[1]]
[1] "the" "very" "relia" "dog" "jumpe" "over" "the" "fence"
所以这是函数:
[1] "the very relia dog jumpe over the fence"