regex – メモ帳++ を使用して under_score_case を CamelCase に変更しますか?

find-and-replace notepad++ regex

NP++で正規表現を書いてunder_score_caseを探すことができます。NP++のTextFXを使って、ハイライトして選択することで大文字と小文字を入れ替えることができます

NP++の検索/置換、またはTextFXの検索と置換を使って、これらをつなぎ合わせてunder_score_casecamelCaseに変換するにはどうすればいいですか?

スクリプトを使わないNP++でのやり方を学びたい

Sample input:

this is_a_line
some more_data_over_here
whoop de_do_da

Desired output:

this isALine
some moreDataOverHere
whoop deDoDa

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

  22  None  2011-07-18


ベストアンサー

長くて複雑ですが、メモ帳++で動作する解決策があります。これはTextFXと同様に正規表現、オプションで通常の検索と置換を使用する必要があります

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

6  MBraedley  2011-07-19


NP++では単純な検索/置換でこのようなことができます

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

Replace: \U$1

この機能を動作させるには、置換パネルで「正規表現」ラジオボタンを選択する必要があります

19  eurono  2015-11-18


私自身は通常、エディタとしてvimを使用しています。以下の正規表現は、あなたがvimでやろうとしていることを達成します

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

私の知る限り(NP++を少し弄ってみました)では、Notepad++はPerl Regexpの大文字マクロ\uを理解していません。Notepad++では完全にはできないかもしれません。願わくば、誰かが私の間違いを証明して、あなたの日を作ってくれることを願っています

6  Sean C.  2011-07-18


noteepad++でワンステップでできるので、そちらの方が便利かもしれません

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ファイル名をキャメルケースに置き換えていますが、アンダースコアが3回以上存在してはいけないことを知っていれば、それ以下でも問題ありません

3  Inc33  2015-09-26


個人的にはsedがお気に入りです。光速です

gt; echo make_me_camel_case_please | sed -e ‘s/(_[a-z])/U\1/g’ -e ‘s//_///g’

makeMeCamelCasePlease

i オプションを使用して、編集中のファイルの置換を実行することができます

これはまた、上記のいくつかの解決策と同様に、すべてのアンダースコアを削除します。これが問題であれば修正することができます

2  Captain Lepton  2013-06-17


  • スネークケースを変換する 以下の手順で、メモ帳++を使ってこれを行うことができます

  • スネークケース入力が既に小文字でない場合は、すべて小文字に変換します

  • 置換フォームを開く(Search->Replace OR Ctrl+H)
  • 正規表現のラジオボタンにチェックを入れます
  • _([a-z])または_(.)を探してください
  • \u\1入力で置き換える

2  Rathishkumar Nair  2019-05-31


私はメモ帳++ 7.3で仕事をしています。 同じ問題が発生したので、以下のようにしました

  1. Ctrl+H(検索フォームを表示)
  2. 正規表現のラジオボタンにチェックを入れます
  3. _([a-z]+)」を探します
  4. Replace by “Replace by “\u1”

And worked!

0  Francisco M  2017-04-26


この問題にぶつかって、素晴らしい解決策を見つけました

  1. すべてのアンダースコア(“_”)をスペース(” “)に置き換えます

  2. 各単語の最初の文字を大文字に変更する

  3. すべてのスペース(” “)を空のスペース(”)に置き換えます

  4. Done.

-1  jmcg  2015-10-27


タイトルとURLをコピーしました