例如我有一个包含以下内容的字符串:
String s = "测试字符串*67* **Hi**";
我想得到这个字符串:
*67*
有了星星,我就可以开始替换那部分字符串了。我目前的代码如下所示:
String s = "test string *67* **Hi**";
s = s.substring(s.indexOf("*") + 1);
s = s.substring(0, s.indexOf("*"));
这输出:67
没有星星。
我想知道如何获取一些特殊字符之间的字符串,但不是像我想的那样将这些字符放在一起。
输出应该如下:
//output: test string hello **hi**
最佳答案
只替换特殊字符之间的字符串:
String regex = "(\\s\\*)([^*]+)(\\*\\s)";
String s = "test string *67* **Hi**";
System.out.println(s.replaceAll(regex,"$1hello$3"));
// output: test string *hello* **Hi**
编辑
要同时删除特殊字符,请使用以下正则表达式:
String regex = "(\\s)(\\*[^*]+\\*)(\\s)";
关于java - 在特殊字符之间查找文本并替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46097390/