在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
参数。
参见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"
我正在尝试使用 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
参数。
参见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"