带有=和a的正则表达式;

时间:2010-02-16 16:13:32

标签: java regex escaping

我正在尝试使用正则表达式查找以等号(=)开头的所有子字符串,并以分号(;)结尾,其中包含任意数量的字符。它应该是这样的=*;

出于某种原因,等于没有注册。是否有某种逃避角色会使正则表达式注意到我的等号?

如果对这个问题有任何影响,我正在使用Java。

5 个答案:

答案 0 :(得分:20)

这可能就是你要找的东西。您需要指定要应用星号的字符集或通配符。

"=([^;]*);"

你也可以使用不情愿的量词:

"=(.*?);"

使用括号,您现在拥有组。我相信第一组是整场比赛,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 ';'.
}

答案 1 :(得分:6)

这会查找“任意数量的=符号,包括0”

=*;

如果你想要“=后跟任意数量的其他字符”

=.*;

然而,这将贪婪地匹配 - 如果你想要延迟匹配(以便它在找到下一个分号时停止一个组)你可能想要:

=.*?;

答案 2 :(得分:1)

您提供的正则表达式符合;===;,...,================;。如果需要非贪婪,=.*;(或=.*?;怎么样?

答案 3 :(得分:1)

像=。*;

之类的东西

答案 4 :(得分:1)

学习Java正则表达式的一个很好的资源来源:sun's book about regexp