@daniil14056

Как захватить содержимое тега, в котором могут быть любые символы?

Нужно захватить строку содержимого файла file content без захвата конца строки и закрытия
тегов. Пока решил с (.*), а потом удалить последнею строку. Но это не вариант в плане
расширяемости Нужно составить вместо (.*) регулярку, которая закончит после ,
который стоит перед
. Нужно учитывать, что может быть строка в самом
содержимом файла.
//
String regex="<remote\s+host="localhost"\s+port="8080">\s+<(\w+)\s+\w+="([a-zA-Z0-9]+:[a-zA-Z\\\/]*)">(.*)"
// (.*) нужно вместо нее что-то, что остановит ее.
String test="<remote host="localhost" port="8080"> <file src="C:\www\rock">file content </file></remote>"

<b>Результат на http://baco.su/articles/regulyarnye-vyrajeniya/</b>
key = 0], array (4): 
[key = 0] =>" <remote host="localhost" port="8080"> <file src="C:\www\rock">file content </file></remote>"
[key = 1] => file
[key = 2] => C:\www\rock
[key = 3] =>file content </file></remote>  /*</file></remote>  лишнее, надо остановиться. Слишком жадно*/

P.S. Без экранирования, потому что toster съедает все что в в тегах<>, поэтому просто в код обернул
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
[^<]*

P.S. Все это говнокод. Правильнее использовать ru2.php.net/manual/ru/book.simplexml.php или аналогичный парсер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы