我需要替换字符串中下一个逗号之前的测试单词。
例如,字符串为“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("\\,"));
}
}
最佳答案
你的例子中的要求不是很清楚,你还需要删除逗号后面的空格吗?
无论如何,这个正则表达式匹配单词 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[^,]+", "");
}
关于java - 使用 Java 替换字符串中的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55396207/