0

正規表現をサポートするプログラムで250個のファイルを検索したいのですが、クエリの作成方法がわかりません。

これはサンプルファイルです:

//////////////////////////////Crown Area Effects///////////////////////////////

// Super Spies
DbAreaEffectInfo SuperSpies
{
    name = text_carea_sprspies_name
    desc = text_carea_sprspies_desc
    effects = [
        // scale sabotage super-effect duration

        EffectDuration {
            range = SpaceTime

            player = Self
            // which effect's duration is this scaling
            effect = "SabotageBuilding"
            scale = 1.25
        }

        EffectDuration {
            range = SpaceTime

            player = Self
            // which effect's duration is this scaling
            effect = "ImprovedSabotageBuilding"
            scale = 1.25
        }

        EffectSpeed {
            range = Global
            mask = Spies
            player = Self
            // 25% faster
            scale = 1.25
        }

        EffectMaxHitPoints {
            range = Global
            mask = Spies
            player = Self
            // 25% more hit points
            scale = 1.25
        }

        EffectVisualGlow {
            range = Global
            mask = Spies
            player = Self
            GlowType = Good
            OwnerOnly = true
            Icon = icon_crown_superspies_s
            Tooltip = text_carea_sprspies_name
            VTooltip = vtt_power_unitinfo_SuperSpies
        }

        EffectIsACrown {
            range = Global
            mask = Spies
            player = Self

            crownType = kCrownType_Imperial
        }
    ]
}

そして私はこのようなパターンを探したいです:

<ANYTHING, EVEN NULL>//<ANYTHING, EVEN NULL><MyString><AnyThing, EVEN NULL>

たとえば、この場合:

<anything>//<anything>super<anything>

これにより、この結果が得られます。

 // scale sabotage super-effect duration

どの正規表現クエリで目的の結果が得られますか?

時間と労力をよろしくお願いします!

編集:

効果的なファイル検索を使用しています-http ://www.sowsoft.com/search.htm

4

3 に答える 3

1

標準の正規表現ワイルドカードは.(1文字用)です。任意の繰り返しはで表され*ます。だからこれはあなたのためのトリックをするはずです:

~//(.*)super(.*)~

正規表現エンジンによっては、区切り文字を省略できる/省略しなければならない場合があります~。また、.デフォルトでは改行と一致しないため、2番目のワイルドカードは常に行の終わりに移動し、はとsuper同じ行に表示される必要があり//ます。

于 2012-10-13T22:36:45.467 に答える
0

簡単な解決策は、を使用することです

grep pattern /path/to/files*

シェルで。

unxutilsをダウンロードしてgrepWindows用に入手できます。

于 2012-10-13T22:35:13.033 に答える
0
^\s*//.*?(STRINGYOUWANTTOSEARCHFOR).*$

pcre/perlreスタイルを想定しています。

perlreでは、

^\s*//.*?(\QSTRINGYOUWANTTOSEARCHFOR\E).*$

あなたが探している文字列の奇妙な解釈を防ぐために

他の正規表現エンジン/フレーバーの構文は異なります。比較については、 http://www.regular-expressions.info/reference.htmlを参照してください。

于 2012-10-13T22:41:23.063 に答える