Регулярка

Тема в разделе "WASM.BEGINNERS", создана пользователем Troj, 11 июл 2010.

  1. Troj

    Troj New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2010
    Сообщения:
    21
    Покурил форум, почитал вот эту статью: http://wasm.ru/article.php?article=comregexp
    Но регулярка никак не составляется.
    Нужно вытащить из всего текста два значения: "имя", "фамилия".

    Код (Text):
    1. .586
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5.     include windows.inc
    6.     include user32.inc
    7.     include kernel32.inc
    8.     include masm32.inc
    9.     include regexp.inc
    10.    
    11.     includelib user32.lib
    12.     includelib kernel32.lib
    13.  
    14. .data?
    15.     ResBuffer       db 512 dup(?)
    16.     DataBuffer      db 512 dup(?)
    17. .data
    18.     Expressions     db "0x[A-F0-9a-f]{1,8}",0
    19.     Data            db "tekst~0x32dfcfdfIvan0x32dfcfdf0x32Rojkov0x32~tekst", 0 ;нужно получить Ivan Rojkov, причём игнорируя весь остальной текст(как слева, так и справа).
    20.     rVar            dd ?
    21. .code
    22. start: 
    23.     invoke CreateInterface
    24.    
    25.     invoke RegExp_Method, FLAG_MULTILINE, SETFLAG
    26.     invoke RegExp_Method, FLAG_GLOBAL, SETFLAG
    27.     invoke RegExp_Method, FLAG_IGNORECASE, SETFLAG
    28.     invoke RegExp_Pattern, offset Expressions, offset ResBuffer, 512
    29.    
    30.     invoke RegExp_Replace, offset Data, offset DataBuffer, 512, \
    31.                             offset rVar, offset ResBuffer, 512
    32.  
    33.     invoke MessageBox, 0, offset ResBuffer, 0, 0
    34.  
    35.     invoke ReleaseInterface
    36.     invoke ExitProcess, 0
    37. end start
    Заранее благодарю!
     
  2. Troj

    Troj New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2010
    Сообщения:
    21
    Прошу прикрыть тему. Понимаю реализовать "тяжело" - никто не взялся.
    Сегодня написал ручной обработчик букв.
    Если кого заинтересовало - пишите пм, могу помочь с этим делом.
     
  3. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    Troj,

    Экий скорый, некоторые неделями ответа ждут. :derisive:
    Регулярку можно строить когда есть спецификация на исходные данные, по одной строчке можно только гадать.
    Для неё, к примеру, подойдёт /[^I]+([^0]+)[^R]+([^0]+)/ :derisive:
     
  4. Troj

    Troj New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2010
    Сообщения:
    21
    baldr
    Я чисто под себя конкретно заточил обработчик и никаких трабл.

    В моём случае не требовалась "затруднённая" регулярка, из-за чего и обработчик было "легче" писать. А писать "крупномасштабные" проекты(которые будут обрабатывать всё и вся) ни один на асме за просто так писать не возмётся :)
     
  5. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    На асме нужно писать только то, что критично. Для остального есть C/Perl. :derisive:
     
  6. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    мне все, шо не асм - уже критично
    сравните fdbg и Olly
    webdev другое дело
     
  7. DANioR

    DANioR Daniel

    Публикаций:
    0
    Регистрация:
    20 мар 2006
    Сообщения:
    23
    Адрес:
    Ukraine