在R中替换复杂的正则表达式

substitute complex regular expression in R

我正在尝试使用 gsub 将文本替换为单词。例如:

我的文字是: 我会将 [USER=1234]@banana1[/USER] 添加到聊天室

我想要的输出是: 我会在聊天中添加用户提及

基本上,我想替代 [USER=1234]@banana1[/USER] 到 用户提及

我尝试了以下代码但没有成功:


text=c("I ​will add [USER=1234]@banana1[/USER] to the chat")
replace_user=gsub("\[user.*?\/user\]","usermention",text)

我们可以使用

 sub("\[.*\]", "usermention", text)
[1] "I ​will add usermention to the chat"

您可以将它与

一起使用
> gsub("\[user.*?/user]","usermention",text, ignore.case=TRUE)
[1] "I ​will add usermention to the chat"

请注意 / 在 TRE 正则表达式模式中没有任何特殊之处,与括号表达式外的 ] 相同,因此无需转义它。

由于原始字符串中有 USER 而不是 user,因此需要 ignore.case=TRUE 参数。

参见regex demo online

参见R demo

text=c("I will add [USER=1234]@banana1[/USER] to the chat"
gsub("\[user.*?/user]","usermention",text, ignore.case=TRUE)
## => [1] "I will add usermention to the chat"