gpt4 book ai didi

java - android正则表达式替换bug

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

Android java 正则表达式函数的一个非常奇怪的行为:

我正在尝试将“<file_info.*>”替换为:

<?xml version="1.0" encoding="utf-8"?>
<file_info domain_id="ac-demo" language="en" os="androidtab" version="11" >
<id string_name="app_name">MobilityPlus</id>
<!-- general buttons text -->
......

调用:String.replaceAll( "<file_info.*>", "<resources>" );我只得到了 replaced 部分:

<?xml version="1.0" encoding="utf-8"?>
<resources>

其余部分已裁剪!!为什么??? 我需要返回整个字符串,只替换搜索到的部分。使用至少 2 个在线正则表达式测试器并得到我想要的,但在 Android/Java 中它不会。

这可能是 BUG?在谷歌代码中??

任何有关如何解决此问题的建议将不胜感激!谢谢!

(注意:我尝试同时使用 String.replaceAll() 和 Pattern+Matcher,两者都产生相同的结果。有或没有多行标志,甚至在删除所有 \t \r \n ...字符)

最佳答案

使用 DOTALL 尝试非贪婪量词:

String.replaceAll( "(?s)<file_info.*?>", "<resources>" );

尽管我应该提醒您不要使用正则表达式解析/操作 XML

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

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