r - 使用 eval 和 parse 转义反斜杠(非标准评估)
问题描述
我需要结合非标准评估使用正则表达式。
以下工作正常:
library(stringr)
> str_replace("2.5", "\\.", ",") # without non-standard evaluation
[1] "2,5"
> eval(parse(text = 'str_replace("2.5", ".", ",")')) # with non-standard evaluation
[1] ",.5"
以下不起作用:
> eval(parse(text = 'str_replace("2.5", "\\.", ",")'))
Error: '\.' is an unrecognized escape in character string starting ""\."
我在想我需要转义反斜杠本身,但是,这似乎也不起作用:
> eval(parse(text = 'str_replace("2.5", "\\\.", ",")'))
Error: '\.' is an unrecognized escape in character string starting "'str_replace("2.5", "\\\."
解决方案
解决方案是在非标准评估中双重转义反斜杠:
> eval(parse(text = 'str_replace("2.5", "\\\\.", ",")'))
[1] "2,5"
推荐阅读
- kotlin - 具有可能的空值的 Kotlin 映射器
- c++ - 间接运算符如何通过运算符重载返回指针地址
- ocaml - OCaml 对二次根的偏应用
- android - 不能使用提供的参数调用以下函数: Kotlin
- python - 使用 python 在没有 protobuf 的情况下实时解析 GTFS
- python - 将加速度计数据存储在树莓派 SD 卡中
- .htaccess - 仅重定向带有子页面的父页面
- mysql - 将不同的列分组为一行
- objective-c - 需要帮助尝试将 react-native-firebase 实施到我的独立博览会项目中
- python - 使用 Python 多处理库时无法获取属性错误