|
|
|
| эквавалентны ли следующие выражения?
1) ((a+b)(a+b)*)* и (a+b)^+эпсилон
^ - верхний +
2) a*( a+b)* и (a+ba)*
3) (ab+a)*a и a(ba+a)* | |
|
|
|
|
автор: .... (29.11.2009 в 18:55) |
|
|
для: eugi54rus
(29.11.2009 в 18:05)
| | не буду спрашивать откуда дровишки ,)
если не принимать во внимание что () это захват подстроки
и даже a(a) , это не то-же самое что (aa)
, то вообще думаю не имели-ли в виду под словом эквивалентны
что-нибудь типа совпадут-ли все эти шаблоны с буквой Z
2) a*( a+b)* и (a+ba)*
совпадут всегда
потомучто var_dump(preg_match('#a*#', "bbb"));
, совпадут по разному со строкой "ab"
3) (ab+a)*a и a(ba+a)*
не совпадут оба только если не будет в строке хоть одной a
или овпадут по разному в строке "abb"
, а так наверное подразумевалась строкb "abaaa" и "abbaa"
>1) ((a+b)(a+b)*)* и (a+b)^+эпсилон
не понял что за эпсилон и ^ - верхний +
+ вроде обычно всегда средний
если там этот или следующий + значит выражение уже не может совпасть с пустой строкой | |
|
|
|
|
|
|
|
для: ....
(29.11.2009 в 18:55)
| | 1) эпсилон - пустое слово :) переделала в ((a+b)+)*, получилось, что они эквивалентны
2) по-моему наоборот...b из них разные выходят | |
|
|
|