【问题标题】:How would i replace a letter/number after a symbol in replaceAll如何在 replaceAll 中的符号后替换字母/数字
【发布时间】:2021-03-28 16:07:03
【问题描述】:

标题说明了一切。 我想知道如何使用 replaceAll 方法替换此特定符号 § 后的一个字母/数字。

感谢任何帮助,我不太擅长正则表达式。

我可以用任何内容替换 §,但这并没有真正的帮助,请参阅:

public String removeSymbols(String text) {
        text.replaceAll("§", "");
        return text;
    }
Before replace all:

§f§c§lTa§6§lpp§e§lle §7- §8[§61.8§8]
§c§lBLACK FRIDAY SALE §7- §e§lUP TO 40% OFF

After:

1f1c1lTa161lpp1e1lle 17- 18[161.818]
1c1lBLACK FRIDAY SALE 17- 1e1lUP TO 40% OFF

就像我说的,感谢任何帮助。谢谢!

【问题讨论】:

  • 您好!好吧,您可以首先使用 grep 或在 java 中与之相关的东西来搜索模式,我认为 java 中的语法是matches。比赛结束后,您可以随意更换。
  • 您不需要使用正则表达式替换来满足您的要求。您只需使用String#replace即可。

标签: java regex character symbols


【解决方案1】:

使用

public String removeSymbols(String text) {
    return text.replaceAll("(?<=§)\\p{Alnum}", "");
}

说明

--------------------------------------------------------------------------------
  (?<=                     look behind to see if there is:
--------------------------------------------------------------------------------
    §                        '§'
--------------------------------------------------------------------------------
  )                        end of look-behind
--------------------------------------------------------------------------------
  \p{Alnum}                 any ASCII letter or digit

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    相关资源
    最近更新 更多