正则表达式 - 以不同字母开头和结尾的所有单词

时间:2011-07-13 04:01:40

标签: regex

我遇到这个正则表达式的问题:

构造一个正则表达式,用于定义字母表中的以下语言 Σ= {a,b}

L6 = {所有以不同字母开头和结尾的单词}

以下是我能够解决的正则表达式的一些示例:

1. L1 = {all words of even length ending in ab} 
   (aa + ab + ba + bb)*(ab) 

2. L2 = {all words that DO NOT have the substring ab}
   b*a*  

4 个答案:

答案 0 :(得分:2)

这会有效吗?

(a.*b)|(b.*a)

或以Kleene的方式说:

a(a+b)*b+b(a+b)*a

答案 1 :(得分:1)

这应该这样做:

"^((a.*b)|(b.*a))$"

答案 2 :(得分:0)

1-为以下每种语言编写正则表达式:(a)以子串“ab”结尾并具有奇数长度的所有字符串的语言。 (b)所有那些不包含子串'abb'的字符串的语言。

2-为以下每种语言构建一个确定性FSA:(a)所有那些字符串的语言,其中倒数第二个符号为'b'。 (b)所有那些长度为奇数的字符串的语言,但如果是b则包含偶数。

答案 3 :(得分:0)

<强> (AA + AB + BA + BB)*(A + B)AB

它可以选择任意数量的偶​​数长度并且具有a和b中的任何字符,然后以字符串ab结束。