r - 如何提取R中的第一个字符串

我有一个正则表达式问题。

我在下面有一个文件列表。

df <- c("Alilis CELF-4_CF_Data_Entry.xlsx" , "Ana T. CELF-4_CF_Data_Entry.xlsx" , "Ana V. CELF-4_CF_Data_Entry.xlsx","Anita CELF-4_CF_Data_Entry.xlsx")

[1] "Alilis CELF-4_CF_Data_Entry.xlsx" "Ana T. CELF-4_CF_Data_Entry.xlsx" "Ana V. CELF-4_CF_Data_Entry.xlsx" "Anita CELF-4_CF_Data_Entry.xlsx" 

我需要提取字符串开头的名称,但有一个带点的短字母(例如 Ana V.)我无法提取这些字母。

使用下面的代码,

unique(word(df, 1))
[1] "Alilis" "Ana"    "Anita" 

我怎样才能得到?

[1] "Alilis" "Ana T."  "Ana V."  "Anita"

最佳答案

尝试

gsub("^((\\S+)|^(\\w+ [A-Z]\\.))\\s+.*", "\\1", df)
[1] "Alilis" "Ana T." "Ana V." "Anita" 

如果有多个空格也应该有效

> gsub("^((\\S+)|^(\\w+ [A-Z]\\.))\\s+.*", "\\1", c(df, "Allis hello CELF-4_Data_Entry.xlsx"))
[1] "Alilis" "Ana T." "Ana V." "Anita"  "Allis" 

https://stackoverflow.com/questions/73831057/

相关文章:

php - 寻找一个新的适用于 Windows 的轻量级 php 编辑器

sql - 如何在 SQL Server 2005 数据库中使用 T-SQL 用零填充 NVARCH

perl - 如何将 Data::Dumper 输出转换回 Perl 数据结构?

php - session.gc_maxlifetime 不适合我

php - 在创建 PHP 类实例时运行代码?

.net - 不可变对象(immutable对象)的约定

php - 网页如何在下次登录时记住您?

regex - 字符串末尾的正则表达式 _#

perl - 为什么 Scalar::Util::Numeric 安装不正确?

asp.net - 在 .net 中,是否有与 Server.HTMLEncode() 相反的函数?