Regex, улавливающий ассемблер

У меня мало проблем с RegEx (я новичок в этом). Мне нужно поймать строку, где от 1 до 6 букв в начале и в пространстве или в новой строке. Я попытался использовать:

  1. http://regexpal.com/
  2. http://gskinner.com/RegExr/

Написав что-то вроде этого:

.+(\s|\n)
(\w+)(\n|\s)

с данными выборки

cls
mov 12h,V0
jmp 123h
jmp 1234
cls
skeq

но это не сработает. Мне нужно поймать:

  1. ЦБС
  2. мов
  3. JMP
  4. skeq

Help; [Если у вас есть хорошие учебники для RegEx, чтобы поделиться, я буду благодарен за это.

2 ответа

Во-первых, если вы хотите изучить регулярное выражение, вы можете взглянуть на http://www.regular-expressions.info/

Я не знаю всех мнемоников asm, и я не знаю, какой механизм регулярных выражений вы используете (отредактируйте свой пост, чтобы уточнить его), но используя это:

(?mi)^[a-z]{1,6}\b

должен выполнять работу, если поддерживается.

(?mi) # i make the pattern case insensitive, m make ^ means start of the line
^ # start of the line
[a-z]{1,6} # between 1 and 6 character in a-z letters
\b # word boundary, but replacing it with (?=\h) or (?=[^\S\r\n]) will be better if possible


Чтобы получить то, что вы хотите использовать

^(\w{1,6})(?:\s|\r?\n)?

с указанными флагами g и m.

См. Пример @regex101.

licensed under cc by-sa 3.0 with attribution.