regex - [0-9] n 次和 [0-9]{n} 在 R 正则表达式中的区别

标签 regex r

据我所知,两者都应该是相同的,但我实际上看到了不同之处,请查看 this question 中的这个最小示例:

a<-c("/Cajon_Criolla_20141024","/Linon_20141115_20141130",
"/Cat/LIQUID",
"/c_puertas_20141206_20141107",
"/C_Puertas_3_20141017_20141018",
"/c_puertas_navidad_20141204_20141205")

sub("(.*?)_([0-9]{8})(.*)$","\\2",a)
[1] "20141024"    "20141130"    "/Cat/LIQUID" "20141107" "20141018"   
[6] "20141205"   

sub("(.*?)_([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])(.*)$","\\2",a)
[1] "20141024"    "20141115"    "/Cat/LIQUID" "20141206" "20141017"   
[6] "20141204" 

我错过了什么?或者这是一个错误?

最佳答案

这是 TRE 库中与贪婪修饰符和捕获组相关的错误。看:

  • SO question with similar issue
  • Issue #11 在 TRE repo
  • Issue #21 .
  • 关于regex - [0-9] n 次和 [0-9]{n} 在 R 正则表达式中的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28730387/

    相关文章:

    r 嵌套指示器 1st of 1st 和 2nd of 1st 和 2nd of 2nd

    r - 绘制李克特量表问题并将它们分组

    regex - 使用正则表达式在 Perl 中计算句子/单词

    捕获多个集合的 Java 正则表达式模式

    regex - R删除unicode换行符

    r - 输出 ggplot 结果在一个 pdf 中,但在 R 中有几页

    r - 在向量 R 中的值分隔符处拆分元素

    python - ReGex:从重复序列中获取多个匹配

    regex - Grep 的 "Invalid range end"— 错误还是功能?

    r - 如何在.Rprofile中存储API key ?