2013-12-01 3 views
0

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

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

Я прав, или есть что-то, что Я скучаю? Благодарю.

+0

Это зависит от обозначений, которые вы используете. '+' обычно означает «1 или больше», а не объединение, которое обычно представляется как '|'. Но в противном случае да, это звучит правильно. –

+0

Хорошим визуальным инструментом для проверки ваших регулярных выражений является https://www.debuggex.com/ - Он показывает вам в реальном времени, что вы делаете, и это очень полезно для создания и тестирования регулярных выражений. Отличный инструмент обучения тоже! – achedeuzot

+0

Да, + обозначение, которое мне показывали для "или", я не знал иначе. Спасибо хоть! – peppy

ответ

0

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

Но вот хороший tutorial вы можете проверить. This one Я нашел полезным также.

+0

Спасибо за помощь! – peppy

0

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

+0

Спасибо за помощь! – peppy

2

+ в регулярных выражениях не означает OR, но «один или более»

Таким образом, вместо 1 * + 01 * вы бы сказали:

1*|01* 

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

Поэтому было бы соответствовать любому из:

1 
1111 
0 
011 

Но ни один из:

101 
110 
100001 
001 
00 

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

+1

Кстати, вы удалили пространство исходного выражения '1 * '_' + '_' 01 *', потому что это пространство не считается разделителем. – achedeuzot

Смежные вопросы