【发布时间】:2013-11-19 16:59:49
【问题描述】:
Android java regex 函数的一个非常奇怪的行为:
我正在尝试将“<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 中它不会。
这是否意味着错误?在 GOOGLE 代码中??
任何有关如何解决此问题的建议将不胜感激! 谢谢!
(注意:我尝试同时使用 String.replaceAll() 和 Pattern+Matcher 并且都产生相同的结果。使用多行标志和不使用,甚至在删除所有 \t \r \n...字符)
【问题讨论】:
-
目前还不清楚您要做什么,但我非常有信心贪婪的正则表达式不会做任何事情。您确实需要解析 XML。
-
当你可以在 3 行内完成工作时,为什么还要努力工作(xml 解析,bla bla bla...)?这正是我想要完成的事情。而且似乎正则表达式 Android API 确实是非标准的,或者至少与 Java 标准不同(我知道没有真正的标准..)。这样做的问题是,你不能使用大量的在线正则表达式测试器,否则它们会适合......