Как оценить это регулярное выражение?

Я просто изучаю регулярные выражения, поэтому я просто хочу убедиться, что мое понимание верно.

01* означает 0, за которыми следуют 0 или более повторений из 1.
1* + 01* означает 0 или более повторений 1 ИЛИ 0, за которыми следуют 0 или более повторений 1.

Я прав или мне чего-то не хватает? Благодарю.

3 ответа

Решение

Это кажется правильным для меня. (Даже думал, что я не одаренный в регулярных выражениях сам)

Но вот хороший урок, который вы можете проверить. Этот я тоже нашел полезным.

Знак + в регулярном выражении означает не ИЛИ, а "один или несколько из"

Поэтому вместо 1* + 01* вы бы сказали:

1*|01*

что будет означать либо строку (возможно, нулевой длины), либо ноль, за которым следует строка (возможно, нулевой длины).

Так что это будет соответствовать любому из:

1
1111
0
011

Но ни один из:

101
110
100001
001
00

Оператор OR (вертикальная труба) имеет низкий приоритет.

Я в регулярных выражениях, поэтому я уверен, что вы совершенно правы, вы также можете перейти по этой ссылке http://regexone.com/

Другие вопросы по тегам