我正在尝试使用正则表达式来查找以等号(=
)开头的所有子字符串,并以分号(;
)结尾,中间有任意数量的字符。它应该是这样的=*;
带有=和a的正则表达式;
出于某种原因,等于没有注册。是否有某种让正则表达式注意到我的等号的转义字符?
我在爪哇工作,如果这对这个问题有任何方向。
我正在尝试使用正则表达式来查找以等号(=
)开头的所有子字符串,并以分号(;
)结尾,中间有任意数量的字符。它应该是这样的=*;
带有=和a的正则表达式;
出于某种原因,等于没有注册。是否有某种让正则表达式注意到我的等号的转义字符?
我在爪哇工作,如果这对这个问题有任何方向。
这可能是你在找什么。您需要指定要应用星号的字符集或通配符。
"=([^;]*);"
您还可以使用不愿意量词:
"=(.*?);"
使用你现在有组括号。我相信第一组是整个比赛,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”
=*;
如果你想“=后跟任意数目的其它字符”你想
=.*;
不过,这贪婪地匹配 - 如果你想偷懒匹配(使之停止一组,当找到下一个分号),你可能会想:
=.*?;
您提供的正则表达式匹配;
,===;
,...,================;
。 =.*;
(或=.*?;
如果不需要非贪心)如何?
喜欢的东西= *;
在Java学习正则表达式的极好来源:sun's book about regexp
这引起了我什么,我一直在寻找,但有可能才发现那些分隔符之间有什么?换句话说,我想得到=和之间的内容;而没有实际上将它们包括在表达中。 谢谢 – chama
如果你想在你想找到的值附近添加parens,你可以使用Matcher的group()方法来检索parens中的位。 – mkb
我如何使用group()方法来做到这一点? – chama