This file takes regular expression and string as input and convert RE into equivalent NFA and NFA into equivalent DFA. Then substring is taken and compared to DFA whether it is accepted by that DFA or not.
Example:
-
RE
((a)|(((a)|((b)(a)))*))
\ a | (a | ba)*string:
abbbbabababb
output:
$a@b@b@b$bababa@b@b#
-
RE
(((((b)*)(a))*)((a)*))
\ (b*a)astring:
baabaaaabbaab
output:
$baabaaaabbaa@b#
-
RE
((((b)|((a)(b)))*)|((((b)|((a)(b)))*)(a)))
\ (b | ab)* | (b |ab)*astring:
abbaabbaaabba
output:
$abba$abba$a$abba#
-
((((((b)*)(a))((b)*))(a))((b)*))
\babab*string:
baaabbaabab
output:
$baa$abba$abab#
5. (((((a)|(b))*)(((b)(a))(b)))(((a)|(b))*))
\(a|b)bab(a|b)
string: bbaabaabaa
output: @b@b@a@a@b@a@a@b@a@a#
-
(((((a)|(b))*)((b)(a)))|((a)|(b)))
\((a|b)*ba)|(a|b)string:
baababaab
output:
$baababa$a$b#