当使用基础R串的功能,如gsub和grep,是否有任何缺点,因为习惯问题,总是指定perl = TRUE?这有什么缺点吗?
有了perl=TRUE,表达式可以做更多的事情(例如,你可以使用前瞻或后面的断言,或者你可以进行大小写转换\\U),并且性能也更快,正如文档所述.
那么,有什么缺点吗?这perl = TRUE不是默认的向后兼容性吗?当perl = TRUE时,我是否应该注意可移植性问题?
我正在尝试在 R 中使用这个正则表达式:
\?(?=([^'\\]*(\\.|'([^'\\]*\\.)*[^'\\]*'))*[^']*$)
我是这样逃避的:
\\?(?=([^'\\\\]*(\\\\.|'([^'\\\\]*\\\\.)*[^'\\\\]*'))*[^']*$)
我收到一个invalid regexp错误。
Regexpal 的正则表达式没有问题,我已经检查过 R 错误消息中解释的正则表达式与我在 Regex pal 中使用的完全相同,所以我有点不知所措。我不认为逃避是问题所在。
代码:
output <- sub("\\?(?=([^'\\\\]*(\\\\.|'([^'\\\\]*\\\\.)*[^'\\\\]*'))*[^']*$)", "!", "This is a test string?")
Run Code Online (Sandbox Code Playgroud)