gpt4 book ai didi

java - 需要使用replaceAll方法进行替换

转载 作者:行者123 更新时间:2023-12-02 13:37:07 25 4
gpt4 key购买 nike

我想要替换字符串,但是我无法解析应该使用哪个正则表达式。

首先我有很多这样的字符串;

String rawString = "w1.28-user_request"

然后,我想得到这样的字符串;

w1_28-user_request

正如我所说,我有一些类似的字符串; week1.detailed_design 所以在这种情况下我将有 week1_detailed_design。最后我只需要处理 w1.23_design_req-open

的情况

PS:用户、请求等只是一个示例命名对象

请考虑到,以下用法对我来说没有用,因为除了上述情况之外,我已经有了 "." 。例如;

user.request_updated

所以我只需要知道如何处理这种情况:w2.25-update_request

rawString.replaceAll("\\.","_"); // not useful

最后,模式如下;

  • string1.2string 应为 string1_2string
  • 1.2string 应为 1_2string
  • string1.2 应为 string1_2

最佳答案

您需要替换用数字括起来的 .

使用

rawString = rawString.replaceAll("(\\d)\\.(\\d)","$1_$2");

图案详细信息:

  • (\\d) - 第 1 组中捕获的数字(通过替换模式中的 $1 引用)
  • \\. - 文字点
  • (\\d) - 第 2 组中捕获的数字(通过替换模式中的 $2 引用)

请参阅Java demo :

List<String> strs = Arrays.asList("string1.2string", "string1.2", "1.2string");
for (String str : strs)
System.out.println(str.replaceAll("(\\d)\\.(\\d)", "$1_$2"));

输出:

string1_2string
string1_2
1_2string

关于java - 需要使用replaceAll方法进行替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com