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つの単語を置き換えるだけなので、すべての単語を置き換えるには数回クリックする必要がありますが、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 に答える