0

JS ファイルがあり、その配列を解析する必要があります。

something: ['Prefix.All','Ignore.Me','Prefix.Another']

プレフィックスが定義された「何か」配列からすべての要素を取得する必要があります。配列に要素が1つしか含まれていない場合、これを取得できます。私の正規表現:

String: something: ['Prefix.All']
Can get element with:
/something\s*:\s*\[['"](Prefix[a-zA-Z0-9.]+)['"]]/

しかし、配列内の多くの要素を見つける方法は? そして、ファイル内の複数の「何か」配列を見つける方法は?

4

2 に答える 2

3

PHP では、2 つのステップでそれを行う必要があります (いずれにせよ、これはおそらくより良い方法です。単一の正規表現にすべてを詰め込むことは、常に最良のアイデアとは限りません)。

まず、探している配列を一致させます。この正規表現では、区切り文字[との間に括弧がないことが必要であることに注意してください。その]ため、ネストされた配列または括弧を含む文字列は、正規表現が失敗する原因となります (「間違ったテキストに一致する」など)。

if (preg_match('/\bsomething: \[([^[\]]*)\]/', $subject, $regs)) {
    $result = $regs[1];
}

これは、のような文字列の最初の出現を見つけ、something: ['Prefix.All','Ignore.Me','Prefix.Another']に入れ'Prefix.All','Ignore.Me','Prefix.Another'ます$result

次に、そこからすべての一致を取得できます。

preg_match_all('/\bPrefix[^\']*/', $result, $final, PREG_PATTERN_ORDER);
$final = $final[0];
于 2013-01-15T08:19:42.130 に答える
0

正規表現では、トークンを()でグループ化し、 で何度も要求できます*

So: (something)*「something」という単語のすべてのインスタンスが表示されます。

さらに:(__your__token__here__)*トークンのすべてのインスタンスを検索します。

配列の一部をhttp://gskinner.com/RegExr/に貼り付け、正規表現ビルダーを使用して正規表現をテストします。

それは役に立ちますか?

于 2013-01-15T07:34:01.070 に答える