首页 > 解决方案 > R 正则表达式:结束锚($)在前面有可选字符(?)时停止工作

问题描述

为什么当结束锚 ($) 前面有可选的字符锚 (?) 时,我的正则表达式停止工作?例如

library(tidyverse
s   <- '[S|s][EG|eg]?'
s2  <- '^[S|s][EG|eg]?$'

[1] TRUE TRUE
c('s','Seg') %>% str_detect(s2) 
[1]  TRUE FALSE

用正则表达式包装[ ]也不起作用

s3  <- '^[[S|s][EG|eg]?]$'
c('s','Seg') %>% str_detect(s) 
c('s','Seg') %>% str_detect(s3) 
[1]  TRUE FALSE

标签: rregex

解决方案


^[[S|s][EG|eg]?]$火柴

  • 列表中的单个字符:

[ S | s

  • 和列表中的一个可选字符:

E G | e g

  • 和一个右方括号]

https://regex101.com/r/Pr4IUq/1


推荐阅读