2

PHPStormでは、CSSクラス名とDOMIDに使用される大文字と小文字が混在する文字列を検索/置換する必要があります。のような属性を変更することはできずonClick、画像名を残す必要があります。これが私が持っているものです:

<div class="ThumbContainer" id="Source-Data4-Thumb">
<div class="ThumbTitleArea">
    <div class="DataTitleDiv"> GYR Performance <img src="images/someImage.png" onClick="someFunc()" /></div>
</div>
    <div class="dataDetailArea">
    <div class="DataThumbArea"> Data Source:Client<br>
                    Last refreshed:12/05/2013 <br>
                    Records:206<br>
        <br>
                        Used for the following reports<br>
                -    GYR Performance<br>
        </div>
</div>
</div>

これが私が必要とするものです:

<div class="thumb_container" id="source_data4_thumb">
<div class="thumb_title_area">
    <div class="data_title_div"> GYR Performance <img src="images/someImage.png" onClick="someFunc()" /></div>
</div>
    <div class="data_detail_area">
    <div class="data_thumb_area"> Data Source:Client<br>
                      Last refreshed:12/05/2013 <br>
                      Records:206<br>
        <br>
                          Used for the following reports<br>
                 -    GYR Performance<br>
        </div>
</div>
</div>

小文字で始まることに注意してdataDetailAreaください。これは1回限りの検索/置換であるため、PHPStormにある必要はありません。http://gskinner.com/RegExr/のように、どのオンラインツールでも使用できます。

私が見つけて置き換える必要のある実際のバックボーンテンプレートは約3100行のコードです。そうでない場合は、ここですべてを提供します。

これが私がこれまでに持っているものです。一致しないようですCamel-Case3-Foo

(class|id|data-[?!=])="\b([A-Za-z][a-z-]*){2,}\b"
4

2 に答える 2

2

この正規表現は、アンダースコアを配置する場所を見つける必要があります。

((?<=\w)(?=[A-Z])|-)

これに置き換えてアンダースコアを挿入してから、文字列を小文字に変換するのは理にかなっているようです。

于 2013-02-07T18:13:00.463 に答える
0

私はこのようなものを検索します:

"[a-z0-9_]*\([A-Z]\)

小文字、数字、またはアンダースコア文字を含む引用符。それに続くものはすべて大文字です。大文字の部分式1を作成します。

部分式1をアンダースコア+tolower()関数の結果に置き換えます。

パスごとに大文字が1つしか見つからないため、これを各行に複数回適用する必要があります。

于 2013-02-07T17:34:08.187 に答える