У меня есть три выражения, и я пытаюсь нарисовать для них FSA, и хочу знать, правильно ли я их решил. Я включил картинку ниже:
Вы можете сделать это так:
[+]([0-9]{2}\s([0-9]{2}\s)*([0-9]{8}|[0-9]{4}\s[0-9]{6})|[0-9]{4}\s[0-9]{6})
Демоверсия
Вы можете использовать визуализаторы, такие как debuggex или jex . Они довольно простые и полезные.
Например. (?:[+][0-9]{2}\s[0-9]{2}\s[0-9]{8})|(?:[+][0-9]{4}\s[0-9]{6})|(?:[+][0-9]{2}\s[0-9]{4}\s[0-9]{6}) обеспечивает это:
(?:[+][0-9]{2}\s[0-9]{2}\s[0-9]{8})|(?:[+][0-9]{4}\s[0-9]{6})|(?:[+][0-9]{2}\s[0-9]{4}\s[0-9]{6})