gpt4 book ai didi

java - 如何以优化的方式删除提到的字符串?

转载 作者:行者123 更新时间:2023-11-30 01:50:16 24 4
gpt4 key购买 nike

您好,我遇到一个问题,我必须从字符串中删除一些不需要的字符。例如,如果字符串是 Hi Uim IMAGE [rofl]test 那么我希望它像 Hi Uim rofl test 。我不想使用字符串替换来硬编码 IMAGE[ 和结束 ] 。可以使用全大写的任何单词,而不是 IMAGE

我已经写了类似下面的内容,但如果可以更好的方式来完成,我会更喜欢。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

public static void main(String[] args) {
String test = "";
String in = "Hi Uim IMAGE [rofl] test IMAGE [rofl] notify the bull";
String[] split = in.split("IMAGE \\[(.*?)\\]");
System.out.println(split);
Pattern p = Pattern.compile("IMAGE \\[(.*?)\\]");
Matcher m = p.matcher(in);
int i = 0;
while (m.find()) {
String group = m.group(1);
System.out.println(group);
test = test + split[i++] + group;
}
for (int var = i; var < split.length; var++) {
test = test + split[var];
}
System.out.println(test);
}

}

这有一个问题,就像我必须循环它一样。有没有更好的方法来做到这一点。

最佳答案

您可以使用

in = in.replaceAll("\\b[A-Z]+\\s*\\[([^\\]\\[]*)]", "$1");

请参阅regex demo

正则表达式详细信息

  • \b[A-Z]+ - 单词边界和 1 个以上大写 ASCII 字母
  • \s* - 0+ 空格
  • \[ - 一个[字符
  • ([^\]\[]*) - 第 1 组 ( $1 ):除 [ 之外的任何 0+ 个字符和]
  • ] - 一个]字符。

关于java - 如何以优化的方式删除提到的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56325696/

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