java正则表达式搜索替换问题

标签 java regex

我有一个字符串,其中包含 3 次出现的单词“TEST”。每个单词后面都跟着 ^,我需要检查 ^ 的第 2 次和第 3 次出现之间的内容是否为空白,如果是空白/空,则进一步搜索以查看 ^ 的第 5 次和第 6 次出现之间的内容是否为“”

如果是“”,则将其替换为空白/空

只要找到 TEST 单词,我就需要重复此逻辑检查。

示例:

现有字符串:

aaaa^
TEST^x^^y^z^""^cccc^bbb^
bbbb^
TEST^p^^q^r^""^lll^mmm^
TEST^P^X^q^n^""^hhh^ttt^

预期字符串:

aaaa^
TEST^x^^y^z^^cccc^bbb^
bbbb^
TEST^p^^q^r^^lll^mmm^
TEST^NOT EMPTY THUS IGNORE^X^q^n^""^hhh^ttt^

我该怎么做?非常感谢任何帮助。

最佳答案

^ 是分隔符,因此您可以将字符串拆分为标记:

String[] tokens = text.split("\\^", -1);

然后搜索该 token 数组,查找TEST,应用您需要的任何逻辑,并根据需要更新 token 。

最后,输出更新后的标记列表,以 ^ 分隔:

for (int i=0; i<tokens.length; i++) {
    if (i > 0) {
        System.out.print("^");
    }
    System.out.print(tokens[i]);
}
System.out.println();

这样做,你正在实现的算法会更加清晰。

关于java正则表达式搜索替换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782522/

相关文章:

java - System.getProperty ("gradle.user.home")返回 null

python:如何在一次搜索中找到\r\n\r\n

javascript - 正则表达式在捕获组中保留尾随斜杠

regex - 正则表达式匹配以测试有效年份

java - 简单的正则表达式匹配

java - Websphere 7 JSF

java - GUI 可以并行检查大量数据的原始性

javascript - 如何编写正则表达式来获取不带双引号的文本?

java - 当 Activity 在其 AsyncTask 运行时被销毁时,内存中会发生什么?

java - SpringBoot : call a query using RestTemplate