正则表达式:“(^ |)”vs“(| ^)”

前端之家收集整理的这篇文章主要介绍了正则表达式:“(^ |)”vs“(| ^)”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对R中的正则表达式有一个非常特殊的问题:
  1. grepl("(|^)over","stackoverflow")
  2. # [1] TRUE
  3.  
  4. grepl("(^|)over","stackoverflow")
  5. # [1] FALSE
  6.  
  7. grepl("(^|x|)over","stackoverflow")
  8. # [1] FALSE
  9.  
  10. grepl("(x|^|)over","stackoverflow")
  11. # [1] FALSE
  12.  
  13. grepl("(x||^)over","stackoverflow")
  14. # [1] TRUE

为什么所有这些表达式都不能评估为TRUE?

POSIX正则表达式实际上应该使所有那些True.看来 Ville Laurikari’s TRE libraryR uses a slightly modified version并不完全符合标准.我会遵循@ rawr的建议,并使用perl = TRUE来获得更兼容的正则表达式.

另见:When both halves of an OR regex group match,is it defined which will be chosen?

猜你在找的正则表达式相关文章