gpt4 book ai didi

java - 如何用正则表达式替换字符序列?

转载 作者:行者123 更新时间:2023-11-30 11:07:40 25 4
gpt4 key购买 nike

我需要删除 xml 中的无效字符引用,也就是说,如果在我的 xml 输入中有类似



必须删除或更换。用于删除 XML 中无效字符的代码不作为输入,是已经将这些字符转换为数字引用的流。我知道无效的 xml 字符是 20 的十六进制数字,但我不知道如何制作正则表达式。我想用 Java 编写代码。

最佳答案

下面是一些示例代码,可帮助您入门:

// Init replacement map
Map<Matcher, String> replacementMap = new HashMap<Matcher, String>() {
{
// Put your replacement rules here...
put(m("regex1"), "replacement1");
put(m("regex2"), "replacement2");
// ...
}

// Helper method for quickly creating a matcher and improve code readability
private Matcher m(String regex) {
return Pattern.compile(regex).matcher("");
}
};

// Load source string
String source = loadSourceString();

// Perform replacements
for(Map.Entry<Matcher, String> e: replacementMap.entrySet()) {
e.getKey().reset(source).replaceAll(e.getValue());
}

您首先创建替换图,然后将要更改的文本加载到字符串中。我们通过在替换字符串前面存储 Matcher 实例来避免模式编译开销。

以下是替换规则的一些示例:

  • put(m("&x#[^;]{2};"), "")

Regular expression visualization

这是最通用的方法。它删除任何字符序列。

  • put(m("&x#[2-9A-F][\dA-F];"), "BAZ")

Regular expression visualization

此方法将十六进制范围 [20-FF] 中的任何字符序列替换为 BAZ

  • put(m("&x#.F;"), "FOO")

Regular expression visualization

这个用 FOO 替换任何以 F 结尾的字符序列。

关于java - 如何用正则表达式替换字符序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835865/

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