Очень странное поведение со стороны Андроида функций 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>");
И я получаю только заменить часть:
<?xml version="1.0" encoding="utf-8"?>
<resources>
А остальное Обрезано !! ЗАЧЕМ??? Мне нужна вся строка, и только найденная часть заменена. Использование по крайней мере 2 онлайн-тестировщиков регулярных выражений и получило именно то, что я хотел, но в Android/Java этого не произойдет.
МОЖЕТ ЛИ ЭТО ЗНАЧИТЬ БУГ? В GOOGLE CODE ??
Любые рекомендации относительно того, как обойти эту проблему, будут наиболее ценными! Спасибо!
(Примечание: я попытался использовать как String.replaceAll() и Pattern + Искатель и оба дают те же результаты, с несколькими линиями флагом и без, и даже после удаления всех \t
\r
\n
... символов.)
Это не совсем понятно, что вы пытаетесь сделать, но я вполне уверен, что жадным регулярный выражение не собирается делать, что бы это ни было. Вам действительно нужно разбирать XML. – chrylis
Зачем выполнять тяжелую работу (xml parsing, bla bla bla ...), когда вы можете выполнять работу в 3 строках? это было именно то, что я пытался сделать. И похоже, что API-интерфейс regex Android действительно нестандартен или, по крайней мере, отличается (ни один реальный стандарт, который я знаю ...) от стандарта Java. Проблема с этим заключается в том, что вы не можете использовать множество онлайн-тестеров, которые в противном случае соответствовали бы ... –