0

私の文字列は次のようになります。

Especificação do Título

GRND3 - GRENDENE

GRND3 - GRENDENE

POSI3 - POSITIVO INF

GRND3、GRND3、POSI3 を 3 つのグループに分けて取得する必要があります。

簡単にできる表現はありますか?

4

1 に答える 1

1

特定の言語を指定しない場合の問題は^、行の開始またはテキストの開始を意味する可能性があることです。

^行頭を意味する場合:

"^(\w+) -"

それをカバーする必要があります。次に、最初のグループを取得します (これも言語固有)。

テキストの開始を意味する場合^(上記のケースでも機能します):

異なるシステムには異なる行区切り文字がありますが、通常はこれでうまくいくはずです:

"\n(\w+) -"

そして再び最初のグループを取得します。

取得したい文字列が文字と数字のみで構成されていると想定していることに注意して\w+ください。+-

「3 つの分離されたグループ」の意味がわからない場合は、通常、すべての一致をループするだけですが、1 つの正規表現ですべてを一致させたい場合は、次のようにする必要があります。

"\n(\w+) - (?:\w|\s)*\r?\n(\w+) - (?:\w|\s)*\r?\n(\w+) -"

それはきれいではありませんが、保守と理解が難しく、エラーが発生しやすいです。

于 2013-04-17T15:05:28.843 に答える