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 に答える