0

作成したアプリケーションの構成ファイルがあります。構成をロードするには、最初に構成ファイルからそれらを解析する必要があります。私はちょっと立ち往生しています。

構成ファイルのスニペットは次のとおりです。

#0_downloaded_url:[http://example.com/to/be/downloaded/, http://example.com/to/be/downloaded/]
#0_follow_url:http://example.com/to/be/downloaded/
#0_download_url:http://example.com/to/be/downloaded/
#0_main_url:http://example.com/to/be/downloaded/
#1_downloaded_url:[http://example.com/to/be/downloaded/, http://example.com/to/be/downloaded/]
#1_follow_url:http://example.com/to/be/downloaded/
#1_download_url: http://example.com/to/be/downloaded/
#1_main_url:http://example.com/

#(数字)_(テキストとアンダースコア):(何でも)(改行)に一致するすべてのものを一致させたいので、基本的に一度に1行です。また、結果をグループ化したいので、最初の数字、次に数字の後のテキスト、最後にセミコロンの後のテキスト(この場合はURL)を取得します。

これは私がこれまでに思いついたものです:

^#\d_\w*:.*

しかし、それは私が望んでいることではありません。1つの行にのみ一致し、結果はグループ化されません。

4

1 に答える 1

2

結果をグループ化するには、括弧を使用する必要があります。

^#(\d)_(\w+):(.+)

(注:私は使用+しました*が、問題ありません。違いは+、少なくとも1つの文字が必要ですが、*どれにも一致しません)。

すべての行を一致させることに関しては、それも期待どおりに動作しています。使用している言語に応じて、通常、入力文字列全体で検索を繰り返し、すべての一致を返す方法があります。

使用している正規表現エンジンによっては、グループに名前を割り当てることもできる場合があります。もしそうなら、あなたはこのようにそれを行うことができます

^#(?<id>\d)_(?<field>\w+):(?<value>.+)
于 2011-09-14T18:57:34.730 に答える