C# regex

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by bdsql, 10 Apr 2012.

  1. bdsql

    bdsql New Member

    Joined:
    28 Dec 2011
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    сабж.)
    Code:
    <div class="textarea1" style="margin-top:20px;"><textarea rows="" cols="" name="insert"> 
    здесь будет уникальный текст)) очень ценный текст... 
    </textarea></div>
    вопрос. как вытянуть "здесь будет уникальный текст)) очень ценный текст... " с помощью regex.
    спасибо))
     
  2. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Както так, \s вроде не только за проел канает
     
  3. bdsql

    bdsql New Member

    Joined:
    28 Dec 2011
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    чет не хочет) 0 результатов.
     
  4. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Зачем эти извращения с регулярками? Ипользуйте DOM-парсеры уже наконец.
    Ну если так уж хочется регулярки, то ок, держи
    Code:
    <div class="textarea1".*?<[^>]*>([^<]*)</
     
    #4 \\ChaOs//, 10 Apr 2012
    Last edited: 10 Apr 2012
  5. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Вы наверное шутите? И чем же они лучше?Нет, я не спорю, что в отдельных моментах так оно и есть, но если нужен универсальный парсер, что бы ваять разнообразнишые группы, значения, логические структуры - то Regex даст фору.
     
  6. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    HTML нерегулярный язык, к нему просто не применимы регулярные выражения. Для каждой задачи должен быть свой инструмент, так вот Regex - инструмент совсем не для этой задачи. Для этой задачи подошел бы идеально HTML Agility Pack
     
    #6 \\ChaOs//, 11 Apr 2012
    Last edited: 11 Apr 2012
  7. bdsql

    bdsql New Member

    Joined:
    28 Dec 2011
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    еще не тестил ваши регулярку, будет доступ к пк посмотрю)
    по поводу DOM-парсеров, согласен с Spot, вот почему
    1. (не уверен полностью но идея такая) по нужен XHTML чтоб DOM создавался без проблем
    2. драгоценное время! пока создается DOM, рабочий regex в 10 раз прокатит этот текст и вытенит из него нужное
     
  8. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Время выполнения дольше, но не на много. Скорость разработки повышается. Сопровождать легче. Ошибки выявить и исправить легче. Может у вас какие-то другие представления в разработке ПО? Да и если время такое драгоценное, что разница в полсекунды существенна, то почему тогда был выбрал язык C#? На чистом Си, или вообще асме, писать тогда нужно.

    Вот тесты если что (3 прогона по 25 повторов, выдирается около 40 строк из таблицы HTML):
    Code:
    RegExp: 00:00:00.9800561
    DomParser: 00:00:01.5200869
    
    RegExp: 00:00:01.0900623
    DomParser: 00:00:01.0720614
    
    RegExp: 00:00:00.9660553
    DomParser: 00:00:01.0090577
     
  9. bdsql

    bdsql New Member

    Joined:
    28 Dec 2011
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    если фаил весит от 50МБ? тогда безусловно, regex лучше
     
  10. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Это где же такие HTML-страницы отдают?
     
    1 person likes this.
  11. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Дело в том, что подходы принципиально разные:
    DOM : можно вырвать те или иные элементы страницы. Одним словом - специализированный парсер.
    Regex: спектр поиска заданным критериям намного шире. Универсальный логический парсер.

    Это все равно, что представить поиск по сайту:
    Простой - вбили предложения или словосочетание и получили результаты.
    Расширенный - задали категорию, дату, автора, название {...} и получили более специализированный результат и/или группу результатов с определенным диапозоном критерий.

    Минус у regex, на мой взгляд, это большой функционал, и что бы пользоваться им в полной мере, составляя грамотные конструкты - нужно время.
    Пол года назад я писал для фирмы, в которой работал подобный тул - впринципе ничего сложного, самое трудно на мой взгляд - это управление синтаксом. После 3 дней мне показалось, что я в полной мере освоил конструирование логических правил - как оказалось ничего подобного, увидев конструкт длинной в 229 символов я был весьма удивлен. :D
     
    #11 Spot, 11 Apr 2012
    Last edited: 11 Apr 2012
  12. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    По поводу регулярок если не правильно составил то проц будет грузить оч хоорошо, особенно если злоупотреблять . , работать с DOM считаю нужно в случаях когда проще использоать его ибо регулрка будет хз какой длины соответственно сьест все рес-сы.
     
  13. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    229
    Likes Received:
    152
    Reputations:
    0
    не стал создавать новый топик.
    подскажите регулярное выражение.

    есть строка из Nго количества символов, надо забрать последние 4е.
    substr не предлагать.

    спасибо!
     
  14. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Например:
    Code:
    .{4}$
    
     
    1 person likes this.