与grep和正则表达式匹配的部分字符串

 手机用户2602918323 发布于 2023-02-06 19:55

我有一个三个字符串的向量,我正在尝试编写一个命令,它将找到向量的哪些成员具有特定字母作为第二个字符.

举个例子,假设我有这个三字母蜇的向量...

example = c("AWA","WOO","AZW","WWP")

我可以使用grepl和glob2rx来查找W作为第一个或最后一个字符的字符串.

> grepl(glob2rx("W*"),example)
[1] FALSE  TRUE FALSE  TRUE

> grepl(glob2rx("*W"),example)
[1] FALSE FALSE  TRUE FALSE

但是,当我尝试使用它时,我得不到正确的结果 glob2rx(*W*)

> grepl(glob2rx("*W*"),example)
[1] TRUE TRUE TRUE TRUE

我确信我对正则表达式的理解是缺乏的,但这似乎是一个非常简单的问题,我似乎无法找到解决方案.我真的很喜欢一些帮助!

为了将来参考,我也非常想知道我是否可以扩展到我有更长字符串的情况.假设我有5个字符长的字符串,我可以使用grepl以这种方式返回W是第三个字符的字符串吗?

1 个回答
  • 我原以为这是正则表达式:

    >  grepl("^.W",example)
    [1]  TRUE FALSE FALSE  TRUE
    

    如果您想要一个预先指定的特定职位,那么:

    >  grepl("^.{1}W",example)
    [1]  TRUE FALSE FALSE  TRUE
    

    这将允许程序化计算:

    pos= 2
    n=pos-1
    grepl(paste0("^.{",n,"}W"),example)
    [1]  TRUE FALSE FALSE  TRUE
    

    2023-02-06 19:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有