【问题标题】:Replace a nth character using regex in Java在 Java 中使用正则表达式替换第 n 个字符
【发布时间】:2021-09-13 03:29:17
【问题描述】:

我正在尝试学习 Java 中的正则表达式。 到目前为止,我一直在尝试一些小挑战,我想知道是否有办法定义第 n 个角色。 例如,假设我有这个字符串:todayiwasnotagoodday 如果我想替换第三个(第四个或第七个)字符,我如何定义一个正则表达式以更改特定的“索引”,对于这个例子,“d”代表一个空白空间“”。 我一直在搜索它,但到目前为止,我的实现从第一个元素匹配到第三个元素:^[a-z]{3} ¿ 是否可以定义这个正则表达式? 提前致谢。

【问题讨论】:

    标签: java arrays regex string replace


    【解决方案1】:

    如果您想通过正则表达式将第三个字符替换为空格,您可以尝试正则表达式全部替换:

    String input = "todayiwasnotagoodday";
    String output = input.replaceAll("^(.{2}).(.*)$", "$1 $2");
    System.out.println(output); // to ayiwasnotagoodday
    

    请注意,您也可以在这里避免使用正则表达式,而只使用子字符串操作:

    String output = input.substring(0, 2) + " " + input.substring(3);
    System.out.println(output); // to ayiwasnotagoodday
    

    【讨论】:

    • 非常感谢,现在我对正则表达式中的组有了更多的经验。当然,这对我未来的实施会有很大帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多