I\'m trying to use a regular expression to find all substrings that start with an equals sign (=) and ends with a semicolon (;) with any number of char
This looks for "any number of = signs, including 0"
=*;
If you want "= followed by any number of other characters" you want
=.*;
However, that will match greedily - if you want lazy matching (so that it stops one group when it finds the next semicolon) you might want:
=.*?;
Something like =.*;
This may be what you are looking for. You need to specify a character set or wild card character that you are applying the asterisk to.
"=([^;]*);"
You can also use the reluctant quantifier:
"=(.*?);"
Using the parenthesis you now have groups. I believe the first group is the whole entire match, and group[1] is the group found within the parenthesis.
The code may look something like:
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 ';'.
}
The regex you provided would match ;, ===;, ..., ================;. How about =.*; (or =.*?; if non-greedy is needed)?
An excellent source for learning about regexp in Java: sun's book about regexp