所有不含101的0和1的串的正则表达式
- 格式:docx
- 大小:36.50 KB
- 文档页数:1
01结尾的二进制数串的正则表达式一、基础概念在计算机科学中,二进制数是一种计数系统,使用基数为2的数字,其中表示数值的每个数字称为一个位(bit)。
而正则表达式是一种用来描述字符串模式的方式,可以用来匹配、查找或替换文本中的字符串。
要找到以01结尾的二进制数串的正则表达式,我们需要先了解二进制数和正则表达式的基本概念。
1. 二进制数二进制数由0和1组成,使用基数为2。
以01结尾的二进制数串,指的是以01结尾的一组二进制数,例如101、1101、1001等。
2. 正则表达式正则表达式是由普通字符(如字符a到z)和特殊字符(称为元字符)组成的字符串,用来描述文本模式。
在正则表达式中,可以使用一些特殊字符来匹配特定的表达式,如\d表示匹配数字,\b表示单词边界等。
二、探讨正则表达式为了找到以01结尾的二进制数串的正则表达式,我们可以按照从简到繁的方式来探讨。
我们需要考虑以01结尾的二进制数串的基本特征,然后逐步构建对应的正则表达式。
1. 以01结尾的二进制数串这里我们需要考虑以01结尾的二进制数串的特点,即最后两位是01。
我们可以先考虑以01为结尾的正则表达式。
2. 以01为结尾的正则表达式为了匹配以01为结尾的二进制数串,可以使用正则表达式\d*01。
其中\d表示匹配数字,*表示匹配前面的表达式零次或多次。
\d*表示匹配0个或多个数字,然后再匹配01即可。
3. 完整的正则表达式现在我们已经找到了以01为结尾的二进制数串的正则表达式,即\d*01。
但是,这个正则表达式只能匹配以01结尾的二进制数串,我们还需要考虑前面的部分。
由于二进制数可能包含多个0和1,我们可以使用(0|1)*\d*01来完善正则表达式。
其中(0|1)表示匹配0或1,*表示匹配0个或多个前面的表达式,\d*表示匹配0个或多个数字,最后再匹配01即可。
三、总结与展望通过以上探讨,我们找到了以01结尾的二进制数串的正则表达式为(0|1)*\d*01。
正则表达式是一种用来描述字符模式的工具,它可以帮助我们在文本中搜索、替换和匹配特定的内容。
在实际应用中,常常会遇到需要匹配特定字母或字母数字组合的情况。
本文将介绍10个以内字母或字母数字的正则表达式,帮助读者更好地理解和运用这一强大的工具。
1. 匹配单个小写字母:正则表达式:[a-z]解释:这个正则表达式可以匹配任意一个小写字母,包括a、b、c等。
2. 匹配单个大写字母:正则表达式:[A-Z]解释:这个正则表达式可以匹配任意一个大写字母,包括A、B、C等。
3. 匹配单个数字:正则表达式:[0-9]解释:这个正则表达式可以匹配任意一个数字,包括0、1、2等。
4. 匹配字母数字组合:正则表达式:[a-zA-Z0-9]解释:这个正则表达式可以匹配任意一个字母或数字,包括大小写字母和数字。
5. 匹配特定数量的字母或数字:正则表达式:[a-zA-Z0-9]{n}解释:这个正则表达式可以匹配包含n个字母或数字的字符。
6. 匹配至少一个字母或数字:正则表达式:[a-zA-Z0-9]+解释:这个正则表达式可以匹配至少一个字母或数字的字符,包括单个字母或数字、字母数字组合等。
7. 匹配不超过m个字母或数字:正则表达式:[a-zA-Z0-9]{,m}解释:这个正则表达式可以匹配不超过m个字母或数字的字符。
8. 匹配字母开头的字母数字组合:正则表达式:[a-zA-Z][a-zA-Z0-9]*解释:这个正则表达式可以匹配以字母开头的任意字母数字组合,包括单个字母、字母数字组合等。
9. 匹配以字母或数字结尾的字母数字组合:正则表达式:[a-zA-Z0-9]*[a-zA-Z0-9]解释:这个正则表达式可以匹配以字母或数字结尾的任意字母数字组合,包括单个字母、字母数字组合等。
10. 匹配不包含特定字符的字母或数字组合:正则表达式:[^特定字符]解释:这个正则表达式可以匹配不包含特定字符的任意字母或数字组合,可以根据实际需求替换"特定字符"。
使用正则表达式进行字符串匹配和替换正则表达式是一种强大的工具,用于在字符串中进行匹配、查找和替换操作。
它通过定义一个模式来描述我们希望匹配的字符串的特征,然后再用这个模式去搜索和替换目标字符串。
在Python中,我们可以使用re模块来处理正则表达式操作。
下面将介绍一些常用的正则表达式匹配和替换操作。
1.匹配字符串中的数字:在正则表达式中,可以使用\d表示任意一个数字。
如果希望匹配多个数字,可以使用\d+表示多个数字。
例如,假设我们有一个字符串"abc123def456",希望匹配其中的数字部分,可以使用以下代码:```pythonimport restring = "abc123def456"pattern = "\d+"result = re.findall(pattern, string)print(result)```输出结果为['123', '456']。
2.匹配字符串中的字母:在正则表达式中,可以使用\w表示任意一个字母或数字(包括下划线)。
如果只希望匹配字母,可以使用[a-zA-Z]表示。
例如,假设我们有一个字符串"abc123def456",希望匹配其中的字母部分,可以使用以下代码:```pythonimport restring = "abc123def456"pattern = "[a-zA-Z]+"result = re.findall(pattern, string)```输出结果为['abc', 'def']。
3.匹配字符串中的特定字符:在正则表达式中,可以使用[]表示一个字符集合,可以匹配集合中的任意一个字符。
例如,[abc]匹配"a"、"b"或"c"。
Python中表示非数字的正则表达式在Python编程中,正则表达式是一种强大的工具,用于在字符串中进行模式匹配和搜索。
在处理文本数据时,经常需要区分数字和非数字字符。
对于表示非数字的正则表达式,我们需要深入了解并掌握相关的语法和用法,以便在实际应用中发挥其最大的作用。
1. 非数字字符的表示在Python的正则表达式中,我们可以使用\ D来表示非数字字符。
这个转义字符表示任何非数字字符,包括字母、符号、空格等。
在实际应用中,我们可以利用这个表示方式来过滤或匹配文本中的非数字部分。
2. 正则表达式中的量词除了表示非数字字符外,正则表达式还可以使用不同的量词来匹配多个非数字字符。
\ D +表示匹配一个或多个非数字字符,\ D *表示匹配零个或多个非数字字符,\ D?表示匹配零个或一个非数字字符。
这些量词可以根据实际需求灵活运用,以满足不同的匹配要求。
3. 正则表达式的分组在处理复杂的文本数据时,可能需要将非数字字符进行分组处理。
正则表达式中可以使用小括号进行分组,从而更灵活地对非数字字符进行匹配和操作。
(\ D \ D \)+可以表示匹配两个非数字字符的重复,(\ D \){4}可以表示匹配四个连续的非数字字符。
4. 缩写字符集正则表达式中也可以使用缩写字符集来表示非数字字符。
\ w可以表示任何字母、数字或下划线字符,而\ W则表示与\ W相反,即任何非字母、数字或下划线字符。
这些缩写字符集在一些情况下可以简化正则表达式的编写,并提高代码的可读性。
总结回顾通过对Python中表示非数字的正则表达式的深入探讨,我们可以发现正则表达式是一种强大的工具,可以用于处理文本数据中的非数字字符。
在实际应用中,我们需要灵活运用\ D、量词、分组和缩写字符集等语法,来满足不同的匹配和操作需求。
我们也需要注意正则表达式的性能和匹配效率,以提高程序的执行效率。
个人观点与理解在实际编程中,正则表达式是我经常使用的工具之一。
1.写出表示下列语言的正则表达式。
⑴ {0, 1}*。
解:所求正则表达式为:(0+1)*。
⑵ {0, 1}+。
解:所求正则表达式为:(0+1)+。
⑶ { x│x∈{0,1}+ 且x中不含形如00的子串 }。
解:根据第三章构造的FA,可得所求正则表达式为:1*(01+)*(01+0+1)。
⑷ { x│x∈{0,1}*且x中不含形如00的子串 }。
解:根据上题的结果,可得所求正则表达式为:ε+1*(01+)*(01+0+1)。
⑸ { x│x∈{0,1}+ 且x中含形如10110的子串 }。
解:所求正则表达式为:(0+1)*10110(0+1)*。
⑹ { x│x∈{0,1}+ 且x中不含形如10110的子串 }。
解:根据第三章的习题,接受x的FA为:要求该FA对应的正则表达式,分别以q0、q1、q2、q3、q4为终结状态考虑:q为终态时的正则表达式:(0*(11*0(10)*(ε+111*11*0(10)*)0)*)*q1为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)*q2为终态时的正则表达式:0*11*0((10)*(111*11*0)*(00*11*0)*)*q3为终态时的正则表达式:0*11*0(10)*1(11*11*0((10)*(00*11*0)*)*1)*q4为终态时的正则表达式:0*11*0(10)*11(1*(11*0((00*11*0)*(10)*)*11)*)*将以上5个正则表达式用“+”号相连,就得到所要求的正则表达式。
⑺ { x│x∈{0,1}+ 且当把x看成二进制数时,x模5与3同余和x为0时,│x│=1且x≠0时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q0、q1、q2、q3、q4,分别表示除5的余数是0、1、2、3、4的情形。
另外,设置一个开始状态q.由于要求x模5和3同余,而3模5余3,故只有q3可以作为终态。
由题设,x=0时,│x│=1,模5是1,不符合条件,所以不必增加关于它的状态。
0到100的正则表达式正则表达式是一种用来表示字符串模式的标准化方法,主要是用来搜索、替换和验证文本中的字符串。
它在不同的编程语言中有着不同的写法,但都具有相同的基础原则:通过把一个字符串拆解成多个字符,也可以把多个字符组合成一个字符串,从而实现文本搜索、修改和检测等操作。
从最简单的正则表达式,如从0到100之间的数字,就可以构建出复杂的结构,如0-9,0-99,00-99,0-100,00-100等。
而针对每种结构,都可以利用正则表达式将其转换为一个简洁明了的字符串。
下面对0-100之间的正则表达式作一个简单的介绍:1. 0-9:也称为十进制正则表达式,可以使用/^[0-9]$/来表示,它表示的是仅有一位的数字,即0-9之间的任意一个数字。
2. 0-99:也称为十进制正则表达式,可以使用/^[0-9]{1,2}$/来表示,它表示的是最多有两位的数字,即0-99之间的任意一个数字。
3. 00-99:也称为十进制正则表达式,可以使用/^[0-9]{2}$/来表示,它表示的是最多有两位的数字,且百位数字以及十位数字都不能为0,即00-99之间的任意一个数字。
4. 0-100:也称为十进制正则表达式,可以使用/^[0-9]{1,3}$/来表示,它表示的是最多有三位的数字,即0-100之间的任意一个数字。
5. 00-100:也称为十进制正则表达式,可以使用/^[0-9]{2,3}$/来表示,它表示的是最多有三位数字,且百位数字以及十位数字都不能为0,即00-100之间的任意一个数字。
从上述可以看出,正则表达式可以用来表示从0到100之间的数字,它可以简化程序中对数字的检查,并使程序更容易理解和修改。
正则表达式在程序开发中发挥着重要的作用。
它可以用来搜索和替换需要处理的文本,并可以验证文本的合法性。
正则表达式可以用来处理一般的文本,也可以用来处理从0到100之间的数字,只要有必要,它就能满足程序开发的需求。
最全的常⽤正则表达式⼤全⼀、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 ⾄少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和⾮零开头的数字:^(0|[1-9][0-9]*)$6 ⾮零开头的最多带两位⼩数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位⼩数的正数或负数:^(\-)?\d+(\.\d{1,2})?$8 正数、负数、和⼩数:^(\-|\+)?\d+(\.\d+)?$9 有两位⼩数的正实数:^[0-9]+(.[0-9]{2})?$10 有1~3位⼩数的正实数:^[0-9]+(.[0-9]{1,3})?$11 ⾮零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$12 ⾮零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$13 ⾮负整数:^\d+$ 或 ^[1-9]\d*|0$14 ⾮正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$15 ⾮负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$16 ⾮正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$⼆、校验字符的表达式1 汉字:^[\u4e00-\u9fa5]{0,}$2 英⽂和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$3 长度为3-20的所有字符:^.{3,20}$4 由26个英⽂字母组成的字符串:^[A-Za-z]+$5 由26个⼤写英⽂字母组成的字符串:^[A-Z]+$6 由26个⼩写英⽂字母组成的字符串:^[a-z]+$7 由数字和26个英⽂字母组成的字符串:^[A-Za-z0-9]+$8 由数字、26个英⽂字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$9 中⽂、英⽂、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$10 中⽂、英⽂、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$11 可以输⼊含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+12 禁⽌输⼊含有~的字符:[^~\x22]+三、特殊需求表达式1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?3 InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$4 ⼿机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$5 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$6 国内电话号码(0511-*******、021-********):\d{3}-\d{8}|\d{4}-\d{7}7 ⾝份证号(15位、18位数字):^\d{15}|\d{18}$8 短⾝份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$9 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$11 强密码(必须包含⼤⼩写字母和数字的组合,不能使⽤特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$12 ⽇期格式:^\d{4}-\d{1,2}-\d{1,2}13 ⼀年的12个⽉(01~09和1~12):^(0?[1-9]|1[0-2])$14 ⼀个⽉的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$15 钱的输⼊格式:16 1.有四种钱的表⽰形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$17 2.这表⽰任意⼀个不以0开头的数字,但是,这也意味着⼀个字符"0"不通过,所以我们采⽤下⾯的形式:^(0|[1-9][0-9]*)$18 3.⼀个0或者⼀个不以0开头的数字.我们还可以允许开头有⼀个负号:^(0|-?[1-9][0-9]*)$19 4.这表⽰⼀个0或者⼀个可能为负的开头不为0的数字.让⽤户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下⾯我们要加的是说明可能的⼩数部分:^[0-9]+(.[0-9]+)?$20 5.必须说明的是,⼩数点后⾯⾄少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的:^[0-9]+(.[0-9]{2})?$21 6.这样我们规定⼩数点后⾯必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$22 7.这样就允许⽤户只写⼀位⼩数.下⾯我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$23 8.1到3个数字,后⾯跟着任意个逗号+3个数字,逗号成为可选,⽽不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$24 备注:这就是最终结果了,别忘了"+"可以⽤"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在⽤函数时去掉去掉那个反斜杠,⼀般的错误都在这⾥25 xml⽂件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$26 中⽂字符的正则表达式:[\u4e00-\u9fa5]27 双字节字符:[^\x00-\xff] (包括汉字在内,可以⽤来计算字符串的长度(⼀个双字节字符长度计2,ASCII字符计1))28 空⽩⾏的正则表达式:\n\s*\r (可以⽤来删除空⽩⾏)29 HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (⽹上流传的版本太糟糕,上⾯这个也仅仅能部分,对于复杂的嵌套标记依旧⽆能为⼒)30 ⾸尾空⽩字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以⽤来删除⾏⾸⾏尾的空⽩字符(包括空格、制表符、换页符等等),⾮常有⽤的表达式)31 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)32 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字) 33 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有⽤) 34 IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))20个正则表达式必知(能让你少写1,000⾏代码)正则表达式(regular expression)描述了⼀种字符串匹配的模式,可以⽤来检查⼀个串是否含有某种⼦串、将匹配的⼦串做替换或者从某个串中取出符合某个条件的⼦串等。
1.写出表示下列语言的正则表达式。
⑴{0, 1}*。
解:所求正则表达式为:(0+1)*。
⑵{0,1}+。
解:所求正则表达式为:(0+1)+。
⑶{ x│x∈{0,1}+ 且x中不含形如00的子串}。
解:根据第三章构造的FA,可得所求正则表达式为:1*(01+)*(01+0+1)。
⑷{ x│x∈{0,1}*且x中不含形如00的子串}。
解:根据上题的结果,可得所求正则表达式为:ε+1*(01+)*(01+0+1)。
⑸{ x│x∈{0,1}+且x中含形如10110的子串 }。
解:所求正则表达式为:(0+1)*10110(0+1)*。
⑹ { x│x∈{0,1}+且x中不含形如10110的子串}。
解:根据第三章的习题,接受x的FA为:要求该FA对应的正则表达式,分别以q0、q1、q2、q3、q4为终结状态考虑:q为终态时的正则表达式:(0*(11*0(10)*(ε+111*11*0(10)*)0)*)*q1为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)*q2为终态时的正则表达式:0*11*0((10)*(111*11*0)*(00*11*0)*)*q3为终态时的正则表达式:0*11*0(10)*1(11*11*0((10)*(00*11*0)*)*1)*q4为终态时的正则表达式:0*11*0(10)*11(1*(11*0((00*11*0)*(10)*)*11)*)*将以上5个正则表达式用“+”号相连,就得到所要求的正则表达式。
⑺ { x│x∈{0,1}+且当把x看成二进制数时,x模5与3同余和x为0时,│x│=1且x≠0时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q0、q1、q2、q3、q4,分别表示除5的余数是0、1、2、3、4的情形。
另外,设置一个开始状态q.由于要求x模5和3同余,而3模5余3,故只有q3可以作为终态。
由题设,x=0时,│x│=1,模5是1,不符合条件,所以不必增加关于它的状态。
正则表达式练习题(打印版)### 正则表达式练习题(打印版)题目一:基本字符匹配1. 编写一个正则表达式,匹配所有以 "abc" 开头的字符串。
2. 编写一个正则表达式,匹配所有包含数字 "123" 的字符串。
3. 编写一个正则表达式,匹配所有包含至少一个字母和至少一个数字的字符串。
答案:1. `^abc`2. `.*123.*`3. `[a-zA-Z].*[0-9]`题目二:字符类匹配1. 编写一个正则表达式,匹配所有包含小写字母 "a" 或 "e" 的字符串。
2. 编写一个正则表达式,匹配所有包含大写字母 "A" 到 "Z" 的字符串。
3. 编写一个正则表达式,匹配所有包含数字 "0" 到 "9" 的字符串。
答案:1. `[ae]`2. `[A-Z]`3. `[0-9]`题目三:量词匹配1. 编写一个正则表达式,匹配字符串 "cat" 出现恰好三次的字符串。
2. 编写一个正则表达式,匹配字符串 "dog" 出现至少一次的字符串。
3. 编写一个正则表达式,匹配字符串 "bird" 出现不超过两次的字符串。
答案:1. `cat{3}`2. `dog+`3. `bird{,2}`题目四:位置锚定1. 编写一个正则表达式,匹配行首出现的单词 "start"。
2. 编写一个正则表达式,匹配行尾出现的单词 "end"。
3. 编写一个正则表达式,匹配整个字符串 "match"。
答案:1. `^start`2. `end$`3. `^match$`题目五:分组与选择1. 编写一个正则表达式,匹配 "cat" 或 "dog"。
所有不含101的0和1的串的正则表达式以下是所有不含101的0和1的串的正则表达式:
1. 空串:$
2. 由0和1随意组成的串,但不包含101: (0|1)*
3. 以0开头,后面跟随任意数量的1或空串,不包含101: 0*1*
4. 以1开头,后面跟随任意数量的0或空串,不包含101: 1*0*
5. 以0开头,后面跟随任意数量的10或0,不包含101: 0*(10|0)*
6. 以1开头,后面跟随任意数量的01或1,不包含101: 1*(01|1)*
7. 长度为2的串,只能是00、01或10: 00|01|10
8. 长度为3及以上的串,能够根据是否以1开头被分为两个部分:
8.1 如果以0开头,则这个串只能包含0和1,并且不能有101:
0*(1(0|1)*)*
8.2 如果以1开头,则这个串只能包含0和1,并且不能有101,并且倒数第二位不能是1: 1* 0* (0|10)* 0*
不含101的0和1的串可以应用于某些高级系统和算法,比如密码学。
它可以帮助我们确保加密后的数据是不易被破解的。
这些正则表达式是非常重要的,因为它们帮助保护重要的数据和通信。
总之,这些正则表达式对于保护系统和数据的安全至关重要。