如何忽略文本中的值?

时间:2011-11-09 11:58:34

标签: java regex regular-language

我有一个这样的字符串:

EQ=ENABLED,QLPUB=50,EPRE=ENABLED

我怎么能忽略QLPUB的价值?实际上我想检查3000行中的这个字符串,但我想忽略50。

有没有办法忽略它,例如使用java正则表达式或%s或......?

3 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

s = s.replaceAll("(^|,)QLPUB=[^,]*", "");

查看在线工作:ideone

答案 1 :(得分:1)

如果QLPUB的值始终为数字,则可以使用以下正则表达式:

^EQ=ENABLED,QLPUB=\d*,EPRE=ENABLED$

以下是一个例子:

String text = "EQ=ENABLED,QLPUB=502,EPRE=ENABLED";      
String pattern = "^EQ=ENABLED,QLPUB=\\d*,EPRE=ENABLED$";

Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
if(matcher.find()) {
    System.out.println(matcher.group());
}

如果QLPUB的值不是,,则将正则表达式更改为:

^EQ=ENABLED,QLPUB=[^,]*,EPRE=ENABLED$

答案 2 :(得分:1)

您可以使用正则表达式/^EQ=ENABLED,QLPUB=\d+,EPRE=ENABLED$/。在java中,这将是这样的:

String myString = "EQ=ENABLED,QLPUB=50,EPRE=ENABLED";
if(myString.matches("^EQ=ENABLED,QLPUB=\\d+,EPRE=ENABLED$"))
{
    //your string matches regardless of the value of QLPUB
}