在r中替换包含特定文本+更改模式的字符串

时间:2016-01-08 14:47:42

标签: regex r str-replace

我尝试删除特定模式,然后更改R脚本中的数字或字母组合。

要删除的模式: " WIS的Alpha代码 - 仅供参考 - 参见期刊XXXX "

其中XXXX可以是4位数字,也可以是字母+ 3位数字或3个字母的组合。

我已经尝试过了:

str_replace(x, '^\\s "Alpha code for WIS - Info Only - see journal" \\b[A-Z1-9]{4}\\b','') 

str_replace(x, '^\\s "Alpha code for WIS - Info Only - see journal" ([0-9])','')  

str_replace(x, '^\\sAlpha code for WIS - Info Only - see journal ([0-9]+)','') 

这些都不起作用。 我也尝试过与gsub相似的正则表达式,而且我再也没有去过。

我可以分三个步骤,首先替换4位数字,然后是字母组合,最后是字母数字,如果它更容易。

1 个答案:

答案 0 :(得分:1)

使用gsub尝试这样的正则表达式:

"Alpha code for WIS - Info Only - see journal ([0-9]{4}|[a-zA-Z][0-9]{3}|[a-zA-Z]{3})

所以代码片段将是:

test <- "Line1: Alpha code for WIS - Info Only - see journal 1234\nLine2: Alpha code for WIS - Info Only - see journal A123\nLine3: Alpha code for WIS - Info Only - see journal AbC\nLine4: line 4 content"
result <- gsub("Alpha code for WIS - Info Only - see journal ([0-9]{4}|[a-zA-Z][0-9]{3}|[a-zA-Z]{3})", '', test)
print(result)

<强>输出

  

[1]&#34; Line1:\ nLine2:\ nLine3:\ nLine4:第4行内容&#34;