gpt4 book ai didi

java - 正则表达式删除除特定标签中的控制字符

转载 作者:行者123 更新时间:2023-11-30 08:23:27 26 4
gpt4 key购买 nike

我在加载和反序列化字符串时从字符串中删除控制字符。我使用以下正则表达式执行此操作,这很好:

\\p{C}

问题是文本的一部分是为了在其中添加新行。所以我需要做的是删除所有控制字符除非它们介于<Text>之间和 </Text> .

如何使用正则表达式执行此操作?

最佳答案

你可以使用

replaceAll("(?s)(<Text>.*?</Text>)|\\p{C}", "$1")

想法是跳过Text标记内容并将它们单独放置(用它们自己替换)。所以如果我们遇到 \\p{C} ,我们知道它不在一个里面。

解释:

  • (?s)激活“点匹配所有”,所以 .也将匹配换行符
  • (<Text>.*?</Text>) 捕获第一组中的文本节点。我们通过 $1 替换为这次捕获的结果
  • 如果我们匹配\\p{C} ,这意味着我们不在文本节点中。所以我们替换为 $1 ,自 (<Text>.*?</Text>) 以来为空轮流不匹配。

Ideone 插图:http://ideone.com/xKZgsn

关于java - 正则表达式删除除特定标签中的控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23673992/

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