0

我仍然是正则表达式的菜鸟,但是有人会仔细检查我的答案是否正确吗?

问题是:指示每个给定的输入字符串是否属于正则表达式定义的语言(a | empty) b (a | b)* a (b)*

Empty = 翻转 3 左右(空字符串)

(a) input string: ababaa
Answer: Does not belong to the regex
because if tested, turns out to be ababab


(b) input string: aabbaa
Answer: Does not belong to the regex
Because if tested, turns out to be ab(b or a)* ab

这些答案正确吗?

4

2 回答 2

1

第二个字符串不属于该语言。如果您查看正则表达式,您可以看到 b 必须是第一个字符(如果 (a|empty) 选择空),或者必须是第二个字符(如果 (a|empty) 选择 a)。由于字符串以aa开头,因此无法匹配。

第一个字符串匹配。只需尝试找出每个选择点,以便获得提供的字符串。从外到内工作可能会有所帮助,因为 (a|b)* 是正则表达式中最灵活的部分 - 即您可以匹配任何您想要的内容。

于 2012-10-21T03:53:46.517 回答
0

您可以通过简单地运行它们来仔细检查您的答案。这是一个可以做到这一点的网站:http ://regex.larsolavtorvik.com/

于 2012-10-21T03:32:17.483 回答