Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Мобильные ОС (Android, iOS, Windows Phone)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2013, 00:37   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
Счастье Что делает данный Regexp с исходной строкой?

Android:
Код:
private static Map<String, String> parseMetadata(String metaString) {
    Map<String, String> metadata = new HashMap<String, String>();
    String[] metaParts = metaString.split(";");
    Pattern p = Pattern.compile("^([a-zA-Z]+)=\\'([^\\']*)\\'$");
    Matcher m;
    for (int i = 0; i < metaParts.length; i++) {
        m = p.matcher(metaParts[i]);
        if (m.find()) {
            metadata.put(((String) m.group(1)).trim(), ((String) m.group(2)).trim());
        }
    }

    return metadata;
}
motorway вне форума Ответить с цитированием
Старый 14.07.2013, 10:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не ошибаюсь: Сравнивает со строкой, что начинается с любой буквы, продолжаясь буквами (латиницы) до первого =\' и заканчиваясь \' перед которым несколько раз может либо слеш либо ковычка повторяться.
Похоже на выдергивание части пути к файлу без имени файла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.07.2013, 10:54   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Спасибо. Вообще этот код используется для получения ID3 тегов MP3, и на выходе должны быть имена артистов и названия песен. Так вот некоторые не проходят на выход. Например, с апострофом названия не проходят. Может быть, ещё какие-то не пропускает. Как это убрать?
motorway вне форума Ответить с цитированием
Старый 14.07.2013, 12:23   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я так влоб не скажу. и МР3 не работал никогда плотно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2013, 20:29   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Как убрать отсюда Pattern.compile("^([a-zA-Z]+)=\\'([^\\']*)\\'$");
всё-таки блокировку ' никто не знает?
Названия, похоже, заключены между апострофами, т.е. строка может быть такая artist='five o'clock';
Она должна пройти на выход
motorway вне форума Ответить с цитированием
Старый 15.07.2013, 20:40   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Думаю что-то типа:
Код:
Pattern.compile("^=\\'\w*\\'$");
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2013, 22:04   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Т.е., этот regexp равен тому? Где, собственно, в начальном заключена блокировка ' ?
motorway вне форума Ответить с цитированием
Старый 15.07.2013, 23:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
этот regexp равен тому?
Я этого не утверждал. Я просто предположил задать условие начала искомого и конца.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать. Что делает MS и не делает Delphi Влад12 Общие вопросы Delphi 8 05.05.2010 20:04
Что делает код AllForCS PHP 1 24.02.2010 00:50
Что делает данный JS (там есть такие ф-ии как getElementsByTagName и getElementById) TwiX JavaScript, Ajax 5 05.02.2010 19:49
Подскажите, что делает данный скрипт на JS? GandaIf JavaScript, Ajax 1 22.08.2009 09:19
Excel 2007/ А что он делает в данный момент? kzld Microsoft Office Excel 10 30.03.2009 11:14