Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式:“;(二)";vs";"(|)";_Regex_R - Fatal编程技术网

Regex 正则表达式:“;(二)";vs";"(|)";

Regex 正则表达式:“;(二)";vs";"(|)";,regex,r,Regex,R,关于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")

关于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。这其中的一个似乎并不完全符合标准。我会按照@rawr的建议,使用
perl=TRUE
来获得更兼容的正则表达式


另请参见:

不确定默认库(POSIX 1003.2扩展正则表达式)的原因,但与pcre
grepl((^ |)over)、“stackoverflow”,perl=TRUE)的工作方式相同。
R默认使用POSIX ERE的TRE实现,并使用perl type by选项: