此问题在此处已有答案:
[How do I deal with special characters like ^$.?*|+(){ in my regex?(2个答案)
3天前关闭。
我想替换表达式中的+号。当我用正则表达式替换时,它将这个+解释为“at one or more”,而实际上我希望它被解释为文字+
我手头的问题是我想格式化下面的字符串,它的格式不好。“model = y+ x1+ x2 +x3 +x4”我想它是:“型号= y + x1+ x2 + x3 + x4”
我有很多这样的表达式需要重新编写,我想使用正则表达式而不是手动调整格式。我想的是这样的:gsub('\s+\s',' + ', string)
,当然这是行不通的。
有没有办法解决这个问题?什么是正则表达式的正确方法来实现这一点?我已经在网上搜索,但没有结果。
2条答案
按热度按时间7qhs6swi1#
(至少)有两种方法可以做到这一点:
+
是字符类的成员(即放在方括号内)我在正则表达式中添加了一些
*
,使其更通用。tkqqtvp12#
使用
stringr
包,我们可以:首先我们使用str_replace_all
,为了替换+
前后的空格,我们使用\\+
。这会在某些位置产生重复的空格。
str_squish()
删除字符串开头和结尾的空格,还减少字符串中重复的空格!第一个