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

Discussion in 'WASM.BEGINNERS' started by e4key, Sep 9, 2009.

  1. e4key

    e4key New Member

    Blog Posts:
    0
    Joined:
    Jul 28, 2009
    Messages:
    101
    привет всем. можно как то проверить подходит ли строка по маске? например мне нужно, чтобы строка начиналась с цифры, после которой следует 5 букв.

    спасибо.
     
  2. Johnikum

    Johnikum Member

    Blog Posts:
    0
    Joined:
    Jun 6, 2003
    Messages:
    97
    RegEx:
    /^\d{1}[a-zA-Z]{5}$/
     
  3. Booster

    Booster New Member

    Blog Posts:
    0
    Joined:
    Nov 26, 2004
    Messages:
    4,860
    Можно сравнивать двойными словами, но всё равно нескольких проверок на каждом слове не избежать.
     
  4. hack_virii

    hack_virii New Member

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

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

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

    Johnikum Member

    Blog Posts:
    0
    Joined:
    Jun 6, 2003
    Messages:
    97
    тогда побайтово, как вариант использовать какую-нибудь библиотеку регекспов
     
  6. DANioR

    DANioR Daniel

    Blog Posts:
    0
    Joined:
    Mar 20, 2006
    Messages:
    23
    Location:
    Ukraine
  7. Blackbeam

    Blackbeam New Member

    Blog Posts:
    0
    Joined:
    Dec 28, 2008
    Messages:
    960
    как-то делал подсветку - слово ищется в строке ( последовательность регистров через пробел, например ) и если находится то...

    ;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

    Blog Posts:
    0
    Joined:
    Aug 16, 2009
    Messages:
    283
    Если нужно что то простое, то: BOOL strcmpmask( IN PCHAR lpszString , IN PCHAR lpszMask )
    ( http://www.rsdn.ru/forum/cpp/3048899.1.aspx )

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