正規表現を使用して、等号(=
)で始まり、任意の数の文字を含むセミコロン(;
)で終わるすべての部分文字列を検索しようとしています。このようなものにする必要があります=*;
何らかの理由で、equalsが登録されていません。正規表現が等号に気付くようなエスケープ文字はありますか?
私はJavaで作業しています。もしそれがこの質問に何らかの関係がある場合。
これはあなたが探しているものかもしれません。アスタリスクを適用する文字セットまたはワイルドカード文字を指定する必要があります。
"=([^;]*);"
消極的な量指定子を使用することもできます。
"=(.*?);"
括弧を使用すると、グループができます。最初のグループは試合全体であり、group[1]
は、括弧内にあるグループです。
コードは次のようになります。
Regex r = new Regex("=([^;]*);");
Match m = r.Match(yourData);
while (m.Success) {
string match = m.Groups[1];
// match should be the text between the '=' and the ';'.
}
これは「0を含む任意の数の=記号」を探します。
=*;
「=に続けて他の任意の数の文字」が必要な場合は、
=.*;
ただし、それは貪欲に一致します-遅延一致が必要な場合(次のセミコロンが見つかったときに1つのグループを停止するように)、次のようにすることができます。
=.*?;
指定した正規表現は、;
、===;
、...、================;
と一致します。 =.*;
(または貪欲でないことが必要な場合は=.*?;
)はどうですか?
=。*;のようなもの
Javaの正規表現について学ぶための優れた情報源: Sunのregexpに関する本