java - 使用 Java 替换字符串中的模式

标签 java regex

我需要替换字符串中下一个逗号之前的测试单词。
例如,字符串为“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/

相关文章:

java - 如何在单击按钮时交换图像?

java - 在没有方法参数的情况下直接调用 cfc 时 ColdFusion 内存泄漏

java - 摄氏度/华氏度转换错误

javascript - 组捕获上的字符串替换和操作

java - 替换字符串中单词之间的前导和尾随逗号以及重复逗号

javascript - 在JavaScript中,将csv转换为json时如何忽略空行

java - Android 中音频文件的 FFT

java - 我如何将 fragment 调用到 Activity ?

php - 我如何使用 PHP 来混淆电子邮件地址,使它们不容易被垃圾邮件发送者获取?

javascript - 如何在 JavaScript 中验证电子邮件地址?