2

这是我的问题。我有数千行喜欢跟随转换。我可以用正则表达式解决它吗?

原来的:

beSendToTheSpecialCustomer = new BooleanElement("SendToTheSpecialCustomer",false);

至:

beSendToTheSpecialCustomer = new BooleanElement("Send To The Special Customer",false);

感谢您的任何建议。

编辑: 我刚刚在 np++ 中找到了一个不完美的解决方案

寻找:

(\".*)([a-z])([A-Z])(.*\")

用。。。来代替:

\1\2 \3\4

然后点击“全部替换”,但每次只替换每行一个单词,所以我需要点击几次才能替换所有单词,但我可以在1分钟内完成我的工作。

从 Placido 找到更好的解决方案:

([a-z])([A-Z])(?=[^()]+,(?:false|true)\);)

用。。。来代替:

\1 \2
4

1 回答 1

1

恐怕你不能只用 Np++ 做到这一点。但这可以使用几乎任何编程语言通过回调轻松完成。以 PHP 为例:

$txt = 'beSendToTheSpecialCustomer = new BooleanElement("Send To The Special Customer",false);';
echo preg_replace_callback('/new\s+\w+\s*\(\s*"(\w+)"\s*,\s*\w+\s*\)/', 
    function($match){
        return preg_replace('/([a-z])([A-Z])/', '\1 \2', $match[1]);
    },
    $txt
);

编辑:

这是在 Notepad++ 中使用正则表达式的一个不完美的解决方案:

寻找

([a-z])([A-Z])(?=[^()]+,(?:false|true)\);)

用。。。来代替

\1 \2
于 2013-02-05T09:08:47.210 回答