web-dev-qa-db-ja.com

Notepad ++を使用してunder_score_caseをCamelCaseに変更しますか?

NP ++で正規表現を記述して_under_score_case_を見つけることができます。 NP ++でTextFXを使用して、強調表示して選択することにより、大文字と小文字を大文字と小文字に変更できます。

NP ++の検索/置換またはTextFXの検索と置換を使用してこれらを結合し、_under_score_case_をcamelCaseに変換するにはどうすればよいですか?

スクリプトを使用せずにNP ++でこれを行う方法を学びたいです。

入力例:

_this is_a_line
some more_data_over_here
whoop de_do_da
_

望ましい出力:

_this isALine
some moreDataOverHere
whoop deDoDa
_

アンダースコアに一致する正規表現は_([a-z])です。存在すると思いますが、見つからない置換は__\toupper\1_のようなものです。

20
Freiheit

私は長く複雑な解決策を持っていますが、Notepad ++で動作します。正規表現、オプションで通常の検索と置換、およびTextFXを使用する必要があります。

  1. 各単語の前にプレースホルダー文字を追加し、Zを選択しました。おそらくアルファベット順である必要はありませんが、最後のステップの方が簡単です。正規表現を使用して、\<([^ ]*)\>を検索し、_Z\1_に置き換えます。
  2. 既存のスペースを一意のプレースホルダーシーケンスに置き換えます。 #space#を選びました。これは正規表現で行うことができますが、通常または拡張を使用することを好みます。
  3. アンダースコアをスペースに置き換えます。置き換えてはならないアンダースコアがある場合は、おそらくカスタム正規表現が必要です。私はまっすぐに検索して置き換えました。
  4. すべてのテキストを選択し、TextFXメニューから_TextFX Characters -> Proper Case_を選択します。
  5. ここで、最初の3つのステップを逆にする必要があります。スペースを検索し、何もないものに置き換えます。次に、スペースプレースホルダーシーケンスを検索し、スペースに置き換えます。最後に、正規表現を使用して\<Z([^ ]*)\>を検索し、_\1_に置き換えます。
6
MBraedley

単純な検索/置換は、NP ++でこれを実行します。

検索:[_]{1,1}([a-z])

置換:\U$1

これを機能させるには、[置換]パネルで[正規表現]ラジオボタンを選択する必要があります。

17
eurono

私は通常、vimをエディターとして使用しています。次の正規表現は、vimで実行しようとしていることを実行します。

%s/_\([a-zA-Z]\)/\u\1/g

私が知ることができること(私は少しNP ++をいじりました)から、Notepad ++はPerl Regexpの大文字マクロ\uを理解しません。 Notepad ++でこれを完全に行うことができない場合があります。うまくいけば、誰かが私を間違って証明してあなたの一日を過ごすでしょう。

6
Sean C.

これは、notepad ++の1つのステップで行うことができます。

Find: ([a-z]+)[_]?([a-z]?)([a-z]+)[_]?([a-z]?)([a-z]+)[_]?([a-z]?)([a-z]+)\.php
Replace: $1\U$2\L$3\U$4\L$5\U$6\L$7

これに関する唯一の問題は、アンダースコアが存在できる最大時間と文字列の終了方法を知る必要があることです。上記の例では、phpファイル名をcamelCaseに置き換えていますが、アンダースコアが3回を超えて存在することはできないため、問題はありません。

3
Inc33
  • ヘビのケースを変換する以下の手順に従って、Notepad ++を使用してこれを行うことができます。

  • まだ小文字でない場合は、ヘビの入力をすべて小文字に変換します

  • 置換フォームを開きます(検索->置換ORCtrl + H
  • 正規表現ラジオボタンをチェック
  • _([a-z]) OR _(.)を探します
  • \u\1入力で置換
2

私の個人的なお気に入りはsedです。それは電光石火です:

>エコーmake_me_camel_case_please | sed -e 's /(_ [a-z])/\U\1/g' -e 's/_ // g'

makeMeCamelCasePlease

-iオプションを使用して、編集中のファイルに対して置換を実行すると、N ++が変更を反映します。

これにより、上記のソリューションと同様に、すべての下線が削除されます。これが問題である場合、それは修正できます。

2
Captain Lepton

Notepad ++ 7.3を使用しています。私は同じ問題を抱えていて、次のことをしました:

  1. Ctrl+H (検索フォームを表示)
  2. 正規表現ラジオボタンをチェック
  3. "_([a-z] +)"を探します
  4. "\ u\1"に置き換える

そして働いた!

0
Francisco M