我在一些 Rscripts 中创建了一些关于 R 的教程。我需要一个讲义集(HS)和一个没有答案的编码集(CS),学生可以在其中编码。我需要一些帮助正则表达式来搜索 HO 中的答案部分,以便我可以将其从 CS 中删除。
在 HS 中,我在答案之前/之后有开始 (#'YOUR_ANSWER) 和结束 (#'END_ANSWER) 标志。要创建 HO 集,我需要替换
YOUR_ANSWER
As_samp2 = 36
As_samp3 = 38
#'END_ANSWER
with
"space for answer".
因此,如果我的文本位于:
a = "#'YOUR_ANSWER
As_samp2 = 36
As_samp3 = 38
#'END_ANSWER"
我尝试过正则表达式,但没有替代品
b <-gsub(pattern = "YOUR_ANSWER(.*\n*)*#'END_ANSWER", a, replace="space for answer" )
如果我不使用正则表达式,我只会找到“你的答案” - 替换有效,即
c <-gsub(pattern = "YOUR_ANSWER", a, replace="space for answer" )
如果我只是做正则表达式,正如预期的那样,所有文本都会被替换,即
d <- gsub(pattern = "(.*\n*)*", a, replace="space for answer" )
但该组合不起作用。
正则表达式应该可以工作,请参阅:
https://regex101.com/r/USvzLF/1
所以一定有一些我没有得到的深刻的 R 魔法
b <- gsub(pattern = "YOUR_ANSWER(.*\n*)*END_ANSWER", a, replace="space for answer" )
c <- gsub(pattern = "YOUR_ANSWER", a, replace="space for answer" )
d <- gsub(pattern = "(.*\n*)*", a, replace="space for answer" )
我希望将 YOUR_ANSWER 和 END_ANSWER 之间的所有内容替换为答案空间
但什么也没发生。有任何想法吗?
现在更新 @r2evans 已经向我展示了正则表达式的工作;
我试图更改的 R 脚本是https://pastebin.com/mnjpkUFk(即我的文件)
我用来尝试更改它的代码(在单独的 R 脚本中)是:
FileM