java - 在特殊字符之间查找文本并替换字符串

标签 java string replace substring

例如我有一个包含以下内容的字符串:

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**

DEMORegex explanation

编辑
要同时删除特殊字符,请使用以下正则表达式:

String regex = "(\\s)(\\*[^*]+\\*)(\\s)";

DEMO

关于java - 在特殊字符之间查找文本并替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46097390/

相关文章:

r - 使用多个变量的条件来替换 R 中的变量

java - 在 GUI 面板中创建 Java 控制台

java - 将 token 传递给java中的函数

java - onReceive 永远不会接到电话!

c# - 如何创建一个在所有意图和目的上都像字符串一样的类型,因为我无法从字符串继承

javascript - 用破折号替换空格并使所有字母小写

Vim - 更改并包括搜索的字符串

java - 如何使用Java获得小时差

c++ - 清除非字母字符的字符串

replace - 如何使用 Novacode Docx 替换 word 文档中的图像