在RStudio的“查找和替换”功能中使用正则表达式将已捕获的组替换为小写

时间:2016-01-13 21:36:11

标签: regex rstudio

我试图将camelCase变量名转换为snake_case,并希望使用正则表达式来实现。我认为一个简单的查找[a-z]([A-Z])并替换为_$L$1会有效,但它实际上是在放置" $ L"进入变量名称。 RStudio中的方法是什么(使用PERL引擎进行正则表达式)替换为捕获组的小写外壳?

1 个答案:

答案 0 :(得分:3)

PCRE不支持\u\l运营商:

  

37 PCRE不支持\L\l\N{name}\U\u

RStudio也不支持它们。

因此,使用正则表达式可以做的最好的事情是打开Regex复选框,并使用26个正则表达式替换:

([a-z])A -> $1a
([a-z])B -> $1b
 ....
([a-z])Z -> $1z

如果可能,请使用支持\u / \U...\E\l / \L...\E运营商的Notepad ++或Sublime Text或其他支持Boost的工具。

查找内容([[:lower:]])([[:upper:]])(或您的([a-z])([A-Z])
替换为\1\l\2