R正则表达式中的双重结肠

前端之家收集整理的这篇文章主要介绍了R正则表达式中的双重结肠前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目标是删除字符串中的所有非大写字母,我设法找到一个正则表达式解决方案,而不完全理解它.

> gsub("[^::A-Z::]","","PendingApproved")
[1] "PA"

我尝试在R中读取documentation的正则表达式,但双重冒号并没有真正覆盖在那里.

[]包括在正则表达式中匹配的字符,A-Z表示大写,^表示不,有人可以帮助我理解那里的双冒号是什么?

解决方法

据我所知,你不需要那些双冒号:

gsub("[^A-Z]","PendingApproved")
[1] "PA"

您当前的模式表示删除任何不是A-Z或冒号的字符:.在字符范围的每一边重复冒号两次这一事实不会增加任何额外的逻辑.

也许您使用的代码的作者将双冒号与R的正则表达式自己的语法混淆为命名字符类.例如,我们可以将上面的内容写成:

gsub("[^[:upper:]]","PendingApproved")

其中[:upper:]表示所有大写字母.

Demo

猜你在找的正则表达式相关文章