Нечетный результат регулярного выражения ... / символ - PullRequest
1 голос
/ 22 февраля 2012

У меня есть это регулярное выражение в target-c

NSString* searchString = [searchBlock stringByReplacingOccurrencesOfString:@"<(.*?)>" withString:@"" options: NSRegularExpressionSearch range:NSMakeRange (0, [searchBlock length])];

Код должен удалить все, что находится в заостренных скобках <>, и он, кажется, работает большую часть времени, но, похоже, не работает в этом случае иЯ не уверен, почему:

<a href="http://www.twitter.com/starkpo">
        <img height="120" width="124" alt="Follow us @starkpo." style="border: 0;"
        src="http://www.thestarkingtonpost.com/wp-content/uploads/2009/09/twitter-master.jpg" 
        title="Join us on Twitter" />
    </a>
    <p style="font-size: 11px; line-height: 17px; margin: 0; padding: 0 4px 5px;">Follow us @starkpo.</p></div>

возвращает:

<img height="120" width="124" alt="Follow us @starkpo." style="border: 0;"
        src="http://www.thestarkingtonpost.com/wp-content/uploads/2009/09/twitter-master.jpg" 
        title="Join us on Twitter" />

    Follow us @starkpo.

Ожидаемый ответ - просто вернуть простой текст: Follow us @ starkpo.

AnyИдея, почему он игнорирует самозакрывающийся тег?

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

. не соответствует символам новой строки по умолчанию.

Вы можете включить это, используя флаг NSRegularExpressionDotMatchesLineSeparators.

1 голос
/ 22 февраля 2012

Вы должны указать механизму регулярных выражений, чтобы . также соответствовал символам новой строки.

Добавить NSRegularExpressionDotMatchesLineSeparators к options.

...