我需要在字符串中的下一个逗号之前替换测试词。
例如,字符串为“ abc test xy, tmy test 1, vks , csb
”;
替换后的输出应为“ abc , tmy, vks,csb
”。
删除测试,后跟任何字符或数字,直到逗号为止。
我尝试了以下代码,但是没有用。
import java.sql.Timestamp;
import java.time.Instant;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TESTREPLACE {
public static void main(String[] args) {
String str = "abc test xy, tcs test 1, vks , csb ";
String regex = " default.+\\,";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.replaceAll("\\,"));
}
}
答案 0 :(得分:2)
在您的示例中要求不是很明确,是否还需要在逗号后删除空格?
无论如何,此正则表达式与单词test
匹配,后跟除逗号,
之外的任何字符:(test[^,]+)
在replaceAll
中使用它可以解决问题。
@Test
public void test() {
final String input = "abc test xy, tmy test 1, vks , csb";
final String expected = "abc , tmy , vks , csb";
final String got = replaceTestWordUpToComma(input);
assertEquals(expected, got);
}
private String replaceTestWordUpToComma(String input) {
return input.replaceAll("test[^,]+", "");
}