0

我有一个这样的字符串:

EQ=ENABLED,QLPUB=50,EPRE=ENABLED

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

有什么方法可以忽略它,例如使用 java 正则表达式或 %s 或 ...?

4

3 回答 3

2

试试这个正则表达式:

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

在线查看它:ideone

于 2011-11-09T12:02:23.787 回答
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$
于 2011-11-09T12:04:29.517 回答
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
}
于 2011-11-09T12:05:32.827 回答