Регулярное выражение не соответствует

У меня есть регулярное выражение в моем приложении Cocoa-Touch (с использованием RegexKitLite).

    NSString *week = [[NSString alloc] initWithFormat:@"%@", [pageContent stringByReplacingOccurrencesOfRegex:@"<select name=\"week\" class=\"selectbox\" style='width:134' onChange=\"doDisplayTimetable(NavBar, topDir);\">(.+?)<option value=\"(.+?)\">(.+?)</option>" 
                                                                                               withString:@"$2"]];

Я ожидаю, что это будет соответствовать разделу этого (что находится в NSString pageContent):

  <span class="selection">
   <nobr>
    Periode<br>
    <span class="absatz">
     &nbsp;<br>
    </span>
    <select name="week" class="selectbox" style='width:134' onChange="doDisplayTimetable(NavBar, topDir);">
<option value="14">17-5 - 16-7</option>
    </select>
   </nobr>
  </span>

Но это не так... Мне нужно значение параметра, возможно, существует более одного (в этом случае мне нужно, чтобы они оба были разделены ,,

Кто-нибудь может мне помочь?

С уважением, Додо

1 ответ

Решение

Если вы оставите обязательный комментарий "OMGPARSINGHTMLWITHREGEX" кому-то другому, ваше регулярное выражение не будет работать, потому что вам нужно маскировать скобки здесь:onChange="doDisplayTimetable\(NavBar, topDir\);"

Затем, если вам нужно получить более одного варианта, я бы сделал это в два этапа - сначала распакуйте ваш <select>...</select> блок, а затем написать другое регулярное выражение, чтобы соответствовать всем <option>...</option> внутри него.

Другие вопросы по тегам