正则表达式 – 正则表达式保留一些匹配,删除其他匹配
发布时间:2020-12-14 06:03:17 所属栏目:百科 来源:网络整理
导读:我在使用这个正则表达式时遇到了麻烦.考虑以下向量. vec - c("new jersey","south dakota","virginia:chincoteague","washington:whidbey island","new york:main") 在那些包含:的字符串中,我想只保留带有main的字符串:,导致 [1] "new jersey" "south dako
我在使用这个正则表达式时遇到了麻烦.考虑以下向量.
> vec <- c("new jersey","south dakota","virginia:chincoteague","washington:whidbey island","new york:main") 在那些包含:的字符串中,我想只保留带有main的字符串:,导致 [1] "new jersey" "south dakota" "new york:main" 到目前为止,我只能用这种丑陋的嵌套噩梦到达那里,这显然远非最佳. > g1 <- grep(":",vec) > vec[ -g1[grep("main",grep(":",vec,value = TRUE),invert = TRUE)] ] # [1] "new jersey" "south dakota" "new york:main" 如何编写单个正则表达式来保持:main但删除其他包含:? 解决方法
使用| (选择一个包含:main或者根本不包含:):
> vec <- c("new jersey",+ "washington:whidbey island","new york:main") > grep(":main|^[^:]*$",vec) [1] 1 2 5 > vec[grep(":main|^[^:]*$",vec)] [1] "new jersey" "south dakota" "new york:main" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |