R正则表达式:当前面有可选字符(?)时,结束锚($)停止工作

R正则表达式:当前面有可选字符(?)时,结束锚($)停止工作,r,regex,R,Regex,当结束锚($)前面有可选的字符锚(?)时,为什么我的正则表达式停止工作?比如说 library(tidyverse s <- '[S|s][EG|eg]?' s2 <- '^[S|s][EG|eg]?$' [1] TRUE TRUE c('s','Seg') %>% str_detect(s2) [1] TRUE FALSE ^[[S|S][EG | EG]?]$匹配 列表中的单个字符: [S|S 和列表中的一个可选字符: E G | E G 和一个结束

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

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

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

^[[S|S][EG | EG]?]$
匹配

  • 列表中的单个字符:
[S|S

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

  • 和一个结束方括号
    ]

好的。知道了。我认为我的错误是混淆了
()
[]
@LucasMation:True;)
s3  <- '^[[S|s][EG|eg]?]$'
c('s','Seg') %>% str_detect(s) 
c('s','Seg') %>% str_detect(s3) 
[1]  TRUE FALSE