| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Android > Что делает этот код с Regexp? |
| Автор: motorway 13.7.2013, 23:35 | ||
|
| Автор: _zorn_ 15.7.2013, 05:16 |
| Парсит строку вида paramA='value1';paramB='value2' и засовывает в metadata все пары разделенные точкой запятой, причем значения (value) без кавычек. Параметры могут состоять только из маленьких и больших английских букв, значения - любые символы кроме одинарной кавычки. |
| Автор: motorway 15.7.2013, 11:13 |
| Спасибо большое. А как модифицировать код, чтобы значения могли содержать одинарную кавычку? Или тогда уже нарушается принцип разделения? На практике у меня встречаются значения с такой кавычкой. |
| Автор: _zorn_ 16.7.2013, 06:59 |
| Pattern p = Pattern.compile("^([a-zA-Z]+)=(.*)$"); Тогда нужно передавать значения без кавычек (paramA=value1;paramB=value2) Если нужны кавычки (хотя зачем ?), то Pattern p = Pattern.compile("^([a-zA-Z]+)=\\'(.*)\\'$"); |
| Автор: motorway 16.7.2013, 13:38 |
| Это ID3 теги, напр. названия песен. Название песни вполне может содержать кавычку. "It's good" |
| Автор: motorway 16.7.2013, 14:03 |
| Спасибо за Regexp! |