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

我对R中的正则表达式有一个非常特殊的问题:
grepl("(|^)over","stackoverflow")
# [1] TRUE

grepl("(^|)over","stackoverflow")
# [1] FALSE

grepl("(^|x|)over","stackoverflow")
# [1] FALSE

grepl("(x|^|)over","stackoverflow")
# [1] FALSE

grepl("(x||^)over","stackoverflow")
# [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?

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...