проверить строку по маске

Тема в разделе "WASM.BEGINNERS", создана пользователем e4key, 9 сен 2009.

  1. e4key

    e4key New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2009
    Сообщения:
    101
    привет всем. можно как то проверить подходит ли строка по маске? например мне нужно, чтобы строка начиналась с цифры, после которой следует 5 букв.

    спасибо.
     
  2. Johnikum

    Johnikum Member

    Публикаций:
    0
    Регистрация:
    6 июн 2003
    Сообщения:
    97
    RegEx:
    /^\d{1}[a-zA-Z]{5}$/
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Можно сравнивать двойными словами, но всё равно нескольких проверок на каждом слове не избежать.
     
  4. hack_virii

    hack_virii New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2009
    Сообщения:
    71
    Johnikum, а как прикрутить RegExp к МАСМу?О_о
    Я так понимаю, что все проверки на соответствие осуществляются выражениями вроде:
    Код (Text):
    1. cmp reg,char
    2. j(n)e L1
    Еще есть директива .IF с различными ><=
    И команды SCAS

    Но а рег.экспом как?

    Booster, согласен. Скорей всего это зависит от размера строки. Но придется все равно сравнивать побайтово.
     
  5. Johnikum

    Johnikum Member

    Публикаций:
    0
    Регистрация:
    6 июн 2003
    Сообщения:
    97
    тогда побайтово, как вариант использовать какую-нибудь библиотеку регекспов
     
  6. DANioR

    DANioR Daniel

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

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    965
    как-то делал подсветку - слово ищется в строке ( последовательность регистров через пробел, например ) и если находится то...

    ;edi - указатель но 1-й символ строки в которой ищем
    ;edx - длина строки в которой ищем
    ;esi - указатель но 1-й символ строки которую ищем
    ;ecx - длина строки которую ищем

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;
    .while edx>0
    xor eax,eax
    .while ecx
    xor al,[edi+ecx-1]
    xor al,[esi+ecx-1]
    or ah,al
    dec ecx
    .endw
    .if ah==0
    ; yes
    jmp @F
    .endif
    dec edx
    inc edi
    .endw
     
  8. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    Если нужно что то простое, то: BOOL strcmpmask( IN PCHAR lpszString , IN PCHAR lpszMask )
    ( http://www.rsdn.ru/forum/cpp/3048899.1.aspx )

    А так только pcre.