使用 replaceAll 方法需要替换
Replacement needed by using replaceAll method
我想要替换字符串,但是我无法确定应该使用哪个正则表达式。
首先我有很多这样的字符串;
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)","_");
图案详情:
(\d)
- 捕获到第 1 组的数字(通过替换模式中的 </code> 引用)</li>
<li><code>\.
- 文字点
(\d)
- 捕获到第 2 组的数字(通过替换模式中的 </code> 引用)</li>
</ul>
<p>参见 <a href="http://ideone.com/jdRXme" rel="nofollow noreferrer">Java demo</a>:</p>
<pre><code>List<String> strs = Arrays.asList("string1.2string", "string1.2", "1.2string");
for (String str : strs)
System.out.println(str.replaceAll("(\d)\.(\d)", "_"));
输出:
string1_2string
string1_2
1_2string
我想要替换字符串,但是我无法确定应该使用哪个正则表达式。
首先我有很多这样的字符串;
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)","_");
图案详情:
(\d)
- 捕获到第 1 组的数字(通过替换模式中的</code> 引用)</li> <li><code>\.
- 文字点(\d)
- 捕获到第 2 组的数字(通过替换模式中的</code> 引用)</li> </ul> <p>参见 <a href="http://ideone.com/jdRXme" rel="nofollow noreferrer">Java demo</a>:</p> <pre><code>List<String> strs = Arrays.asList("string1.2string", "string1.2", "1.2string"); for (String str : strs) System.out.println(str.replaceAll("(\d)\.(\d)", "_"));
输出:
string1_2string string1_2 1_2string