正则表达式练习题1

合集下载

单元4 序列数据与正则表达式操作——字符串试题及答案

单元4  序列数据与正则表达式操作——字符串试题及答案

单元4 序列数据与正则表达式操作——字符串试题及答案(一)选择题1.Python解释器执行'123'.isdigit()方法返回的结果是()。

[单选题] *A.True(正确答案)B.FalseC.'True'D.因语法错误而报错2.Python解释器执行'-'.join({'a':'b','c':'d'})的结果为()。

[单选题] *A.'a-c'(正确答案)B.'a-b-c-d'C.'b-d'D.报错3.Python中,判断一个字符串是否全由数字组成的方法为str.isnumeric(),那么在Python 3中执行print('123'.isnumeric(),u'123'.isnumeric())得到的结果为()。

[单选题] *A.Ture FalseB.False TrueC.Ture True(正确答案)D.True 报错4.Python 3解释器执行'AB2C3D'.lower().title()的结果是()。

[单选题] *A.'Ab2c3d'B.'Ab2C3D'(正确答案)C.'AB2C3D'D.语法错误5.在Python中,字符串s = 'abc',那么执行表达式s+'d'之后,s的打印结果是()。

[单选题] *A.'abc'(正确答案)B.'abcd'C.'abc+d'D.报错6.关于字符串的replace()方法,正确的选项是()。

*A.replace()方法如果没有替换成功则报错B.replace()方法如果没有替换成功则将原字符串返回(正确答案)C.replace()方法如果替换成功则返回新的字符串(正确答案)D.replace()方法如果替换成功则返回原字符串7.Python解释器执行'1234'.find('5')的结果是()。

Java正则表达式练习

Java正则表达式练习

Java正则表达式练习⼀、导读 正则表达式,⼜称规则表达式。

(英⽂名Regular Expression,所以代码中常以regex、regexp、RE表⽰)。

正则表达式简单说就是⽤于操作⽂本数据的规则表达式,在Java 中我们使⽤正则表达式来对字符串进⾏“有规则的操作”,没理解没关系,看下⾯的练习就懂了。

正则表达式对字符串的常见操作有:字符串的匹配、切割、替换、获取。

下⾯我们就逐⼀进⾏练习:⼆、正则表达式の规则 既然是表达式,就具有特定的规则,所以我们先看看jdk的⼯具类Pattern对正则表达式的规则的描述:(较多,简单浏览即可,当使⽤到对应的规则是来查阅即可。

)三、字符串の匹配:matches() 练习1:对输⼊的qq号进⾏匹配(qq匹配规则:长度为5-10位,纯数字组成,且不能以0开头。

) 没有学习正则表⽰式之前,我们需要⽤各种if语句来进⾏判断,但现在我们可以使⽤则正表达式的规则来操作:1package RegularExpression;23public class regexTest {4public static void main(String[] args) {5//测试:6 String qq1 = "1832137835";7 String qq2 = "789j9371";8 String qq3 = "22";9 String qq4 = "012189783";10boolean b1 = isQQ(qq1);11boolean b2 = isQQ(qq2);12boolean b3 = isQQ(qq3);13boolean b4 = isQQ(qq4);1415 System.out.println(qq1+"是qq号码吗?"+b1);16 System.out.println(qq2+"是qq号码吗?"+b2);17 System.out.println(qq3+"是qq号码吗?"+b3);18 System.out.println(qq4+"是qq号码吗?"+b4);19 }2021//练习1:匹配QQ号(长度为5-10位,纯数字组成,且不能以0开头)22public static boolean isQQ(String qq) {23//定义匹配规则:24 String regex = "[1-9][0-9]{4,9}";2526//判断是否符合规则27boolean b = qq.matches(regex);2829return b;30 }31 } 运⾏结果: 解析:注意匹配规则被“浓缩”到了字符串regex中,我们只需要⽤"[1-9][0-9]{4,9}"就描述了qq的匹配规则,怎么做到的呢? ⾸先我们在匹配需要“⼀位⼀位地匹配”,qq匹配规则是第⼀位不能是0的纯数字,所以我们⽤[1-9]来表⽰第⼀位的规则;接下来是第⼆位:随意的数字都⾏,所以我们⽤[0-9]来表⽰,按照这个逻辑,当然后⾯的都应该是纯数字即[0-9],但我们需要确定qq的长度只能是5~10,⽽规则⾥我们⽤{}来表⽰范围,即[0-9]{4,9}结合起来就表⽰:4~9个纯数字。

Linux正则表达式练习

Linux正则表达式练习

Linux正则表达式练习练习⼀1、⽣成30位的随机⼝令[root@centos7 ~]#cat /dev/urandom | tr -dc "[:alnum:]" | head -c30RJL5qcA5PsQHnYE4kXui0oNkm1FNh12、判断主机版本号[root@centos7 ~]#grep -o "[0-9]\+" /etc/centos-release | head -n1练习⼆1、找出ifconfig “⽹卡名” 命令结果中本机的IPv4地址ifconfig |egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"2、查出分区空间使⽤率的最⼤百分⽐值[root@centos7 ~]#df | grep "/dev/sd" | grep -o "[0-9]*%" | grep -o "[0-9]\+" | sort -n | tail -13、查出⽤户UID最⼤值的⽤户名、UID及shell类型[root@centos7 app]#cat /etc/passwd | sort -nr -t: -k3 | head -n1 | cut -d: -f1,3,7nfsnobody:65534:/sbin/nologin4、查出/tmp的权限,以数字⽅式显⽰⽅法⼀:[root@centos7 app]#stat -c %a /tmp1777⽅法⼆:[root@centos7 app]#stat /tmp | grep Uid | cut -d\( -f2 | cut -d/ -f11777⽅法三stat /tmp | grep Uid | cut -d\( -f2 | head -c45、统计当前连接本机的每个远程主机IP的连接数,并按从⼤到⼩排序显⽰⽂件/etc/init.d/functions所有⽅法⽅法⼀grep ".*{$" /etc/init.d/functions | tr -d {⽅法⼆[root@centos7 ~]#grep -o "^.*()" /etc/init.d/functions规范⽅法三grep "^[[:alnum:]_]\+[[:space:]]*()" /etc/init.d/functions练习三1、显⽰/proc/meminfo⽂件中以⼤⼩写s开头的⾏(要求:使⽤两种⽅法,不要理解以s开头的单词)grep -i "^s.*" /proc/meminfo ⽅法⼀grep "^[Ss].*" /proc/meminfo ⽅法⼆2、显⽰/etc/passwd⽂件中不以/bin/bash结尾的⾏grep -v "/bin/bash$" /etc/passwd3、显⽰⽤户rpc默认的shell程序grep "^rpc\>" /etc/passwd | cut -d: -f74、找出/etc/passwd中的两位或三位数grep -o "\<[0-9]\{2,3\}\>" /etc/passwd5、显⽰CentOS7的/etc/grub2.cfg⽂件中,⾄少以⼀个空⽩字符开头的且后⾯存⾮空⽩字符的⾏grep "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg6、找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多个空⽩字符结尾的⾏netstat -tan| grep "LISTEN[[:space:]]*$"7、显⽰CentOS7上所有系统⽤户的⽤户名和UIDcut -d: -f1,3 /etc/passwd | grep "\<[[:digit:]]\{,3\}$""\<[[:digit:]]\{,3\}\>"(123⽤户名能匹配) 注意与上正则区别8、添加⽤户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd⽤户名同shell名的⾏grep "^\(.*\):.*\<\1$" /etc/passwd9、利⽤df和grep,取出磁盘各分区利⽤率,并从⼤到⼩排序df | grep "^/dev/sd" | grep -o "[0-9]\{1,3\}%" | grep -o "[0-9]\{1,3\}" | sort -rn练习四1、显⽰三个⽤户root、mage、wang的UID和默认shell[root@centos7 ~]#grep "^\(root\)\|^\(xiaojun\)\|^\(zilong\)" /etc/passwd | cut -d: -f3,70:/bin/bash1001:/bin/bash1011:/bin/bash2、找出/etc/rc.d/init.d/functions⽂件中⾏⾸为某单词(包括下划线)后⾯跟⼀个⼩括号的⾏[root@centos7 ~]#grep -o "^[[:alpha:]]\+\>(" /etc/rc.d/init.d/functionscheckpid(daemon(killproc(…..3、使⽤egrep取出/etc/rc.d/init.d/functions中其基名echo "/etc/rc.d/init.d/functions" | egrep -o "[^/]+$"扩展:取出/etc/rc.d/init.d/基名[root@centos7 ~]#echo "/etc/rc.d/init.d/" | egrep -o "[^/]+/?$"4、使⽤egrep取出/etc/rc.d/init.d/functions路径的⽬录名[root@centos7 ~]#echo "/etc/rc.d/init.d/functions" | egrep -o "^/.*/" | egrep -o "^/.*[^/]"5、统计last命令中以root登录的每个主机IP地址登录次数last | grep "root" | tr -s " " ":" | cut -d : -f3 | egrep "([0-9]+.){3}[0-9]+" | uniq -c6、利⽤扩展正则表达式分别表⽰0-9:[0-9]10-99 : [1-9][0-9]100-199: 1[0-9][0-9]200-249: 2[0-4][0-9]250-255: 25[0-5]7、显⽰ifconfig命令结果中所有IPv4地址[root@centos7 ~]#ifconfig ens33 | egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>" 192.168.10.150255.255.255.0192.168.10.255。

python 选择题 正则表达式

python 选择题 正则表达式

Python 选择题 - 正则表达式正则表达式是一种强大的文本处理工具,它能够在文本中进行模式匹配、查找、替换等操作。

在Python中,我们可以使用re模块来进行正则表达式的操作。

掌握正则表达式对于Python程序员来说是非常重要的,因此在这里我整理了一些关于Python正则表达式的选择题,希望对大家的学习有所帮助。

1. 正则表达式是用来做什么的?A. 匹配字符串B. 替换字符串C. 查找字符串D. 以上所有选项答案:D2. 下列哪个不是Python中re模块的函数?A. re.matchB. re.searchC. re.findD. re.findall答案:C3. 下列哪个符号用来表示任意单个字符?A. *B. .C. +D. ?答案:B4. 以下哪个是非贪婪匹配?A. *B. +C. *?D. ?答案:C5. 下列哪个函数用来返回所有匹配的字符串列表?A. re.matchB. re.searchC. re.findallD. re.finditer答案:C6. 下列哪个函数用来返回一个匹配的对象?A. re.matchB. re.searchC. re.findallD. re.finditer答案:A7. 如何在正则表达式中表示匹配数字?A. \dB. \wC. \sD. \D答案:A8. 如何在正则表达式中表示匹配非数字字符?A. \dB. \wC. \sD. \D答案:D9. 如何在正则表达式中表示匹配空白字符?A. \dB. \wC. \sD. \S答案:C10. 如何在正则表达式中表示匹配单词字符?A. \dB. \wC. \sD. \S答案:B以上就是关于Python正则表达式的选择题,希望对大家有所帮助。

学习正则表达式需要不断的练习和实践,希望大家能够在学习过程中享受到编程的乐趣,不断提升自己的技能。

感谢大家的阅读!11. 在正则表达式中,如何表示重复匹配某个字符n次?A. {n}B. {n,}C. {n,m}D. *答案:A12. 如果想要匹配一个字符集合中的任意一个字符,应该使用哪个符号?A. |B. ^C. $D.答案:A13. 在正则表达式中,如何表示以某个字符开头的字符串?A. ^B. $C. *D. ?答案:A14. 在正则表达式中,如何表示以某个字符结尾的字符串?A. ^B. $C. *D. ?答案:B15. 下列哪个函数用于替换字符串中的匹配项?A. re.matchB. re.subC. re.replaceD. re.swap答案:B16. 在正则表达式中,如何表示匹配某个字符0次或1次?A. *B. +C. ?D. |答案:C17. 下列哪个函数用于根据正则表达式分割字符串?A. re.splitB. re.divideC. re.separateD. re.cut答案:A18. 如何在正则表达式中表示匹配某个字符至少n次?A. {n}B. {n,}C. {n,m}D. *答案:B19. 在正则表达式中,如何表示匹配某个字符0次或多次?A. *B. +C. ?D. {0,}答案:A20. 如何在正则表达式中表示匹配某个字符至多m次?A. {0,m}B. {1,m}C. {0,m}D. {,m}答案:C21. 正则表达式中的贪婪匹配是怎么工作的?A. 尽可能多地匹配B. 尽可能少地匹配C. 随机匹配D. 不可预测答案:A22. 当使用repile()函数编译正则表达式时,应该传入哪个参数?A. 正则表达式字符串B. 匹配模式C. 替换字符串D. 匹配对象答案:A23. 下列哪个函数用于返回一个迭代器,包含所有匹配的对象?A. re.matchB. re.searchC. re.findallD. re.finditer答案:D24. 如何在正则表达式中表示匹配除了某个字符之外的任意字符?A. .B. \dC. \wD. \W答案:D25. 下列哪个函数用于判断字符串是否以某个模式开头?A. re.startB. re.beginC. re.matchD. re.startswith答案:C以上是关于Python正则表达式的选择题,希望能够帮助大家更好地学习和理解正则表达式的知识。

编译原理第三章练习题答案

编译原理第三章练习题答案

编译原理第三章练习题答案编译原理第三章练习题答案编译原理是计算机科学中的重要课程之一,它研究的是将高级语言程序转化为机器语言的过程。

在编译原理的学习过程中,练习题是提高理解和应用能力的重要途径。

本文将为大家提供编译原理第三章的练习题答案,希望能够对大家的学习有所帮助。

1. 什么是词法分析?请简要描述词法分析的过程。

词法分析是编译过程中的第一个阶段,它的主要任务是将源程序中的字符序列划分为有意义的词素(token)序列。

词法分析的过程包括以下几个步骤:1)扫描:从源程序中读取字符序列,并将其转化为内部表示形式。

2)识别:根据预先定义的词法规则,将字符序列划分为不同的词素。

3)分类:将识别出的词素进行分类,如关键字、标识符、常量等。

4)输出:将分类后的词素输出给语法分析器进行进一步处理。

2. 什么是正则表达式?请给出一个简单的正则表达式示例。

正则表达式是一种用于描述字符串模式的工具,它由一系列字符和操作符组成。

正则表达式可以用于词法分析中的词法规则定义。

以下是一个简单的正则表达式示例:[a-z]+该正则表达式表示匹配一个或多个小写字母。

3. 请简要描述DFA和NFA的区别。

DFA(Deterministic Finite Automaton)和NFA(Nondeterministic Finite Automaton)是有限状态自动机的两种形式。

它们在词法分析中常用于构建词法分析器。

DFA是一种确定性有限状态自动机,它的状态转换是确定的,每个输入符号只能对应一个状态转换。

相比之下,NFA是一种非确定性有限状态自动机,它的状态转换是非确定的,每个输入符号可以对应多个状态转换。

4. 请简要描述词法分析器的实现过程。

词法分析器的实现过程包括以下几个步骤:1)定义词法规则:根据编程语言的语法规范,定义词法规则,如关键字、标识符、常量等。

2)构建正则表达式:根据词法规则,使用正则表达式描述不同类型的词素。

3)构建有限状态自动机:根据正则表达式,构建DFA或NFA来识别词素。

正则表达式练习题

正则表达式练习题

正则表达式练习题1. 匹配手机号码正则表达式格式:^[1][3-9]\d{9}$2. 匹配邮箱地址正则表达式格式:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$3. 匹配URL地址正则表达式格式:^(http|https)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$4. 匹配身份证号码(18位)正则表达式格式:^[1-9]\d{16}[\dXx]$5. 匹配日期(yyyy-mm-dd)正则表达式格式:^\d{4}-\d{2}-\d{2}$6. 匹配IP地址正则表达式格式:^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$7. 匹配邮政编码(6位)正则表达式格式:^[1-9]\d{5}$8. 匹配HTML标签正则表达式格式:<(\S*?)[^>]*>.*?</\1>|<.*? />9. 匹配中文字符正则表达式格式:^[\u4e00-\u9fa5]+$10. 匹配数字正则表达式格式:^\d+$11. 匹配英文单词正则表达式格式:^[A-Za-z]+$12. 匹配QQ号码正则表达式格式:^[1-9]\d{4,10}$13. 匹配邮件域名正则表达式格式:^([a-zA-Z0-9_-]+\.)*[a-zA-Z0-9_-]+(\.[a-zA-Z]{2,4})$14. 匹配16进制颜色码正则表达式格式:^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$15. 匹配XML文件正则表达式格式:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$以上为正则表达式的练习题示例及其匹配格式,可以根据需要进行信息提取、验证或筛选等操作。

《Linux操作系统(第2版) )》课后习题答案

《Linux操作系统(第2版) )》课后习题答案

《Linux操作系统(第2版)》课后习题答案练习题一、选择题1. Linux最早是由计算机爱好者 B 开发的。

A. Richard PetersenB. Linus TorvaldsC. Rob PickD. Linux Sarwar2. 下列 C 是自由软件。

A. Windows XPB. UNIXC. LinuxD. Windows 20003. 下列 B 不是Linux的特点。

A. 多任务B. 单用户C. 设备独立性D. 开放性4. Linux的内核版本是 A 的版本。

~A. 不稳定B. 稳定的C. 第三次修订D. 第二次修订5. Linux安装过程中的硬盘分区工具是 D 。

A. PQmagicB. FDISKC. FIPSD. Disk Druid6. Linux的根分区系统类型是 C 。

A. FATl6B. FAT32C. ext4D. NTFS二、填空题1. GNU的含义是:GNU's Not UNIX。

2. Linux一般有3个主要部分:内核(kernel)、命令解释层(Shell或其他操作环境)、实用工具。

3. 安装Linux最少需要两个分区,分别是swap交换分区和/(根)分区。

4. Linux默认的系统管理员账号是root 。

;三、简答题(略)1.简述Red Hat Linux系统的特点,简述一些较为知名的Linux发行版本。

2.Linux有哪些安装方式安装Red Hat Linux系统要做哪些准备工作3.安装Red Hat Linux系统的基本磁盘分区有哪些4.Red Hat Linux系统支持的文件类型有哪些练习题一、选择题1. C 命令能用来查找在文件TESTFILE中包含四个字符的行A. grep’’TESTFILEB. grep’….’TESTFILEC. grep’^$’TESTFILED. grep’^….$’TESTFILE—2. B 命令用来显示/home及其子目录下的文件名。

正则表达式

正则表达式
例2
假设有一个CSV(comma separated value)文件,里面有一些我们需要的信息,但是格式却有问题,目前数据的列顺序是:姓名,公司名,州名缩写,邮政编码,现在我们希望讲这些数据重新组织,以便在我们的某个软件中使用,需要的格式为:姓名,州名缩写-邮政编码,公司名。也就是说,我们要调整列顺序,还要合并两个列来构成一个新列。另外,我们的软件不能接受逗号前后面有任何空格(包括空格和制表符)所以我们还必须要去掉逗号前后的所有空格。
现在让我们把它打散来加以分析。写出这个表达式的基本思路是找出foo()和它的括号中的三个参数的位置。第一个参数是用这个表达式来识别的::\([^,]*\),我们可以从里向外来分析它:
[^,] 除了逗号之外的任何字符
[^,]* 0或者多个非逗号字符
\([^,]*\) 将这些非逗号字符标记为,这样可以在之后的替换模式表达式中引用它
|
将两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:这个元字符不是所有的软件都支持的。
+
匹配1或多个正好在它之前的那个字符。例如正则表达式9+匹配9、99、999等。注意:这个元字符不是所有的软件都支持的。
\([^,]*\), 我们必须找到0或者多个非逗号字符后面跟着一个逗号,并且非逗号字符那部分要标记出来以备后用。
现在正是指出一个使用正则表达式常见错误的最佳时机。为什么我们要使用[^,]*这样的一个表达式,而不是更加简单直接的写法,例如:.*,来匹配第一个参数呢?设想我们使用模式.*来匹配字符串"10,7,2",它应该匹配"10,"还是"10,7,"?为了解决这个两义性(ambiguity),正则表达式规定一律按照最长的串来,在上面的例子中就是"10,7,",显然这样就找出了两个参数而不是我们期望的一个。所以,我们要使用[^,]*来强制取出第一个逗号之前的部分。

python正则表达式练习题

python正则表达式练习题

python正则表达式练习题会⽤到的语法正则字释义举例符+前⾯元素⾄少出现⼀次ab+:ab、abbbb 等*前⾯元素出现0次或多ab*:a、ab、abb 等次匹配前⾯的⼀次或0次Ab?: A、Ab 等^作为开始标记^a:abc、aaaaaa等$作为结束标记c$:abc、cccc 等\d数字3、4、9 等\D⾮数字A、a、- 等[a-z]A到z之间的任意字母a、p、m 等[0-9]0到9之间的任意数字0、2、9 等注意:1. 转义字符>>> s'(abc)def'>>> m = re.search("(\(.*\)).*", s)>>> print m.group(1)(abc)group()⽤法2. 重复前边的字串多次import rea = "kdla123dk345"b = "kdla1123345"m = re.search("([0-9]+(dk){0,1})[0-9]+", a)print (m.group(0),m.group(1),m.group(2))m = re.search("([0-9]+(dk){0,1})[0-9]+", b)print (m.group(0),m.group(1),m.group(2))123dk345 123dk dk1123345 112334 None #group(1)截获了多次的组返回最后⼀次截获的⼦串。

⽰例⼀. 判断字符串是否是全部⼩写代码import res1 = 'adkkdk's2 = 'abc123efg'an = re.search('^[a-z]+$', s1)if an:print ('s1:', an.group(), '全为⼩写')else:print (s1, "不全是⼩写!")an = re.match('[a-z]+$', s2)if an:print ('s2:', an.group(), '全为⼩写')else:print (s2, "不全是⼩写!")s1: adkkdk 全为⼩写abc123efg 不全是⼩写!究其因1. 正则表达式不是python的⼀部分,利⽤时需要引⽤re模块2. 匹配的形式为: re.search(正则表达式,带匹配字串)或re.match(正则表达式,带匹配字串)。

《Linux操作系统(第2版))》课后习题答案

《Linux操作系统(第2版))》课后习题答案

《 Linux 操作系统(第 2 版)》课后习题答案1.6练习题一、选择题1. Linux 最早是由计算机爱好者B开发的。

A. Richard PetersenB. Linus TorvaldsC. Rob PickD. Linux Sarwar2.下列 C 是自由软件。

A. Windows XPB. UNIXC. LinuxD. Windows 20003.下列B不是 Linux的特点。

A. 多任务B.单用户C. 设备独立性D. 开放性4.Linux 的内核版本 2.3.20 是A的版本。

A. 不稳定B. 稳定的C. 第三次修订D. 第二次修订5.Linux 安装过程中的硬盘分区工具是D。

A. PQmagicB. FDISKC. FIPSD. Disk Druid6.Linux 的根分区系统类型是 C 。

A. FATl6B. FAT32C. ext4D. NTFS二、填空题1. GNU 的含义是: GNU's Not UNIX 。

2.Linux 一般有 3 个主要部分:内核( kernel)、命令解释层( Shell 或其他操作环境)、实用工具。

3.安装 Linux 最少需要两个分区,分别是swap 交换分区和 /(根)分区。

4.Linux 默认的系统管理员账号是root。

三、简答题(略)1.简述 Red Hat Linux 系统的特点,简述一些较为知名的Linux 发行版本。

2.Linux 有哪些安装方式?安装 Red Hat Linux 系统要做哪些准备工作?3.安装 Red Hat Linux 系统的基本磁盘分区有哪些?4.Red Hat Linux 系统支持的文件类型有哪些?2.6练习题一、选择题1.C命令能用来查找在文件TESTFILE中包含四个字符的行?A. grep ’????’TESTFILEB. grep’⋯.’TESTFILEC. grep’^????$’TESTFILED. grep’^⋯ .$’TESTFILE2.B命令用来显示/home及其子目录下的文件名。

50道正则表达式笔试题(建议收藏)

50道正则表达式笔试题(建议收藏)

50道正则表达式笔试题(建议收藏)各位客官姥爷好,欢迎回来。

我们上节留下的正则表达式小测验,有客官姥爷在后台回复说题目太少,做的不够尽兴。

那么本节,清风就为各位客官姥爷搜集整理出50道常考的正则表达式笔试练习题目(基础篇5道和应用篇45道),请各位姥爷慢用!基础篇1. \d,\W,\s,\B,.,*,+,?分别是什么?2. (?=a),(?<!a),(?<=a),(?!a)分别是什么?3. 什么是贪婪匹配和懒惰匹配?4. \d{1,2}*这样的写法对吗?请说明理由。

5. 怎么让正则表达式从字符串的右边开始匹配?应用篇1. 写出验证用户名的正则表达式,用户名只能输入英文、数字和下划线。

2. 写出验证用户名的正则表达式,用户名只能输入汉字、英文、数字和下划线。

3. 验证用户密码,长度在6~18 之间,只能包含英文和数字。

4. 验证用户密码强度,最少6位,至少包括1个大写字母、1个小写字母、1个数字和1个特殊字符。

5. 匹配QQ号。

6. 匹配Email地址。

7. 匹配手机号。

8. 匹配固定电话号码。

9. 用正则表达式分别提取固定电话号码中的区号和电话号。

10. 匹配身份证号码。

11. 匹配出身份证号码中的区域代码。

12. 用正则表达式匹配出身份证号中的出生日期。

13. 匹配银行卡号。

14. 匹配邮政编码。

15. 匹配包含送货地址的字符串。

16. 匹配车牌号。

17. 匹配整数。

18. 匹配非零的负整数。

19. 匹配非零的正整数。

20. 匹配浮点数。

21. 匹配非负浮点数。

22. 匹配以下HTML中的文本信息:。

正则表达式(正则表达式括号的作用)

正则表达式(正则表达式括号的作用)

正则表达式(正则表达式括号的作⽤)正则表达式之前学习的时候,因为很久没怎么⽤,或者⽤的时候直接找⽹上现成的,所以都基本忘的差不多了。

所以这篇⽂章即是笔记,也让⾃⼰再重新学习⼀遍正则表达式。

其实平时在操作⼀些字符串的时候,⽤正则的机会还是挺多的,之前没怎么重视正则,这是⼀个错误。

写完这篇⽂章后,发觉⼯作中很多地⽅都可以⽤到正则,⽽且⽤起来其实还是挺爽的。

正则表达式作⽤ 正则表达式,⼜称规则表达式,它可以通过⼀些设定的规则来匹配⼀些字符串,是⼀个强⼤的字符串匹配⼯具。

正则表达式⽅法基本语法,正则声明js中,正则的声明有两种⽅式1. 直接量语法:1var reg = /d+/g/2. 创建RegExp对象的语法1var reg = new RegExp("\\d+", "g");这两种声明⽅式其实还是有区别的,平时的话我⽐较喜欢第⼀种,⽅便⼀点,如果需要给正则表达式传递参数的话,那么只能⽤第⼆种创建RegExp的形式格式:var pattern = new RegExp('regexp','modifier');regexp:匹配的模式,也就是上⽂指的正则规则。

modifier: 正则实例的修饰符,可选值有:i : 表⽰区分⼤⼩写字母匹配。

m :表⽰多⾏匹配。

g : 表⽰全局匹配。

传参的形式如下:我们⽤构造函数来⽣成正则表达式1var re = new RegExp("^\\d+$","gim");这⾥需要注意,反斜杠需要转义,所以,直接声明量中的语法为\d,这⾥需要为\\d那么,给它加变量,就和我们前⾯写的给字符串加变量⼀样了。

1 2var v = "bl";var re =new RegExp("^\\d+" + v + "$","gim"); // re为/^\d+bl$/gim⽀持正则的STRING对象⽅法1. search ⽅法作⽤:该⽅法⽤于检索字符串中指定的⼦字符串,或检索与正则表达式相匹配的字符串基本语法:stringObject.search(regexp);返回值:该字符串中第⼀个与regexp对象相匹配的⼦串的起始位置。

20个常用的正则表达式 单字母

20个常用的正则表达式 单字母

正则表达式(Regular Expression)是一种用于匹配字符串的强大工具。

它通过使用特定的符号和字符来描述和匹配一系列字符串,能够满足我们在处理文本时的各种需求。

在这篇文章中,我们将深入探讨20个常用的单字母正则表达式,并通过实例来展示它们的使用方法。

1. \b在正则表达式中,\b表示单词的边界。

它可以用来匹配单词的开头或结尾,用于查找特定单词而不是单词的一部分。

2. \d\d表示任意一个数字字符。

它可以用来匹配任何数字,例如\d+可以匹配一个或多个数字字符。

3. \w\w表示任意一个字母、数字或下划线字符。

它可以用来匹配单词字符,例如\w+可以匹配一个或多个单词字符。

4. \s\s表示任意一个空白字符,包括空格、制表符、换行符等。

它可以用来匹配空白字符,例如\s+可以匹配一个或多个空白字符。

5. \.\.表示匹配任意一个字符,包括标点符号和空格等。

它可以用来匹配任意字符,例如\.可以匹配任意一个字符。

6. \A\A表示匹配字符串的开始。

它可以用来确保匹配发生在字符串的开头。

7. \Z\Z表示匹配字符串的结束。

它可以用来确保匹配发生在字符串的结尾。

8. \b\b表示单词的边界。

它可以用来匹配单词的开头或结尾,用于查找特定单词而不是单词的一部分。

9. \D\D表示任意一个非数字字符。

它可以用来匹配任何非数字字符。

10. \W\W表示任意一个非单词字符。

它可以用来匹配任何非单词字符。

11. \S\S表示任意一个非空白字符。

它可以用来匹配任何非空白字符。

12. \[\[表示匹配方括号。

它可以用来匹配包含在方括号内的字符。

13. \]\]表示匹配方括号。

它可以用来匹配包含在方括号内的字符。

14. \(\(表示匹配左括号。

它可以用来匹配包含在左括号内的字符。

15. \)\)表示匹配右括号。

它可以用来匹配包含在右括号内的字符。

16. \{\{表示匹配左花括号。

它可以用来匹配包含在左花括号内的字符。

17. \}\}表示匹配右花括号。

正则表达式练习题(打印版)

正则表达式练习题(打印版)

正则表达式练习题(打印版)### 正则表达式练习题(打印版)题目一:基本字符匹配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"。

Python正则表达式总结

Python正则表达式总结

Python正则表达式总结正则表达式练习:1、匹配⼀⾏⽂字中的所有开头的字母内容import res = "I love you not because of who you are, but because of who i am when i am with you"content = re.findall(r'\b\w', s)print(content)['I', 'l', 'y', 'n', 'b', 'o', 'w', 'y', 'a', 'b', 'b', 'o', 'w', 'i', 'a', 'w', 'i', 'a', 'w', 'y']2、匹配⼀⾏⽂字中的最后的数字内容import res = "I love you not because 12sd 34er 56df e4 54434"content = re.findall(r'\d\b', s)print(content)['4', '4']3、匹配⼀⾏⽂字中的所有开头的数字内容import reprint(re.match(r'\w+', '123sdf').group())123sdf4、只匹配包含字母和数字的⾏import res = "i love you not because\n12sd 34er 56\ndf e4 54434"content = re.findall(r'\w\d', s, re.M)print(content)['12', '34', '56', 'e4', '54', '43']5、写⼀个正则表达式,使其能同时识别下⾯所有的字符串:'bat', 'bit', 'but', 'hat', 'hit', 'hut‘import res = "'bat', 'bit', 'but', 'hat', 'hit', 'hut"content = re.findall(r'..t', s)print(content)['bat', 'bit', 'but', 'hat', 'hit', 'hut']6、匹配所有合法的python标识符import res = "awoeur awier !@# @#4_-asdf3$^&()+?><dfg$\n$"content = re.findall(r'.*', s, re.DOTALL)print(content)['awoeur awier !@# @#4_-asdf3$^&()+?><dfg$\n$', '']7、提取每⾏中完整的年⽉⽇和时间字段import res = """se234 1987-02-09 07:30:001987-02-10 07:25:00"""content = re.findall(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', s, re.M)print(content)['1987-02-09 07:30:00', '1987-02-10 07:25:00']8、使⽤正则表达式匹配合法的邮件地址:import res = """xiasd@, sdlfkj@.com sdflkj@ solodfdsf@ sdlfjxiaori@ oisdfo@""" content = re.findall(r'\w+@\w+.com', s)print(content)['xiasd@', 'sdflkj@', 'solodfdsf@', 'sdlfjxiaori@']9、将每⾏中的电⼦邮件地址替换为你⾃⼰的电⼦邮件地址import res = """693152032@, werksdf@, sdf@sfjsdf@, soifsdfj@pwoeir423@"""content = re.sub(r'\w+@\w+.com', '1425868653@', s)print(content)1425868653@, 1425868653@, 1425868653@1425868653@, 1425868653@1425868653@10、匹配\home关键字:import reprint(re.findall(r'\\home', "skjdfoijower \home \homewer"))['\\home', '\\home']11、使⽤正则提取出字符串中的单词import res = """i love you not because of who 234 you are, 234 but 3234ser because of who i am when i am with you"""content = re.findall(r'\b[a-zA-Z]+\b', s)print(content)['i', 'love', 'you', 'not', 'because', 'of', 'who', 'you', 'are', 'but', 'because', 'of', 'who', 'i', 'am', 'when', 'i', 'am', 'with', 'you']摘抄供参考学习:校验数字的表达式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})+/.?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.正则表达式是一种_________________________操作。

2.正则表达式是由_________以及____________组成的___________。

3.^表示______________________。

4.$表示________________________。

5.^&表示__________________。

6.^.*& 表示________________,7.\^\$表示匹配字符串_______。

8.要在方括号内匹配^,必须用__________。

9.\n________________。

等价于\x0a 和\cJ。

10.\r________________。

等价于\x0d 和\cM。

11.标记一个子表达式的开始和结束位置的字符是_________。

12.匹配前面的子表达式零次或多次的字符是__________。

13.匹配除换行符\n之外的任何单字符______________。

14.匹配前面的子表达式零次或一次,或指明一个非贪婪限定符的字符是____________15.指明两项之间的一个选择的字符是__________。

16.标记限定符表达式的开始的字符是___________。

17.____________用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

18匹配YYYY-MM-DD格式的日期的正则表达式____________________。

2.简答题(共40分)1.对下列运算符从高到低排序转义符替换限定符圆括号和方括号定位点和序列(即:位置和顺序)2正则表达式在文本编辑器中广泛使用,写出正则表达式被用于那些方面3. 匹配身份证号码的正则表达式。

注:中国的身份证为15位或18位4.按要求写出正则表达式(1. 只能输入小写英文字符(2. 匹配正整数(3. 只能输入数字(4. 只能输入某个区间数字。

js基础练习题

js基础练习题

js基础练习题一、变量与数据类型1. 声明一个名为`age`的变量,并将其赋值为25。

2. 声明一个名为`name`的字符串变量,并将其赋值为你的名字。

3. 声明一个名为`isStudent`的布尔变量,并将其赋值为`true`。

5. 声明一个名为`numbers`的数组,包含1, 2, 3, 4, 5五个数字。

二、运算符与表达式1. 计算1 + 2 3的结果。

3. 使用三元运算符判断一个数是奇数还是偶数。

4. 编写一个表达式,计算两个数的最大值。

5. 使用自增运算符,使变量`count`的值增加1。

三、流程控制1. 使用if语句判断一个数是否大于10。

2. 编写一个for循环,输出1到100的所有偶数。

3. 使用while循环计算1到100所有奇数的和。

4. 使用switch语句,根据不同的星期数输出对应的中文星期名称。

四、函数1. 编写一个函数,计算两个数的和。

2. 创建一个函数,判断一个字符串是否为回文。

3. 编写一个匿名函数,实现阶乘运算。

4. 使用箭头函数,输出一个数组中所有偶数的平方。

五、对象与数组1. 创建一个名为`person`的对象,包含姓名、年龄和性别属性。

2. 使用forin循环遍历一个对象的所有属性。

3. 编写一个函数,将数组中的每个元素乘以2。

4. 使用map方法,将一个字符串数组转换为整数数组。

5. 使用filter方法,过滤出数组中所有大于10的元素。

六、字符串操作2. 获取字符串 `"JavaScript"` 的第3个字符。

3. 判断字符串 `"hello"` 是否包含子字符串 `"ell"`。

4. 将字符串 `"abcdefg"` 的所有字符转换为大写。

5. 使用slice方法截取字符串 `"Hello, World!"` 中的`"World"`。

正则表达式测试题及答案

正则表达式测试题及答案

正则表达式测试题及答案一、选择题1. 正则表达式中,哪个字符用于表示“或”的操作?A. ?B. !C. |D. @答案:C2. 正则表达式中,哪个字符用于匹配任意单个字符?A. .B. *C. +D. ?答案:A3. 正则表达式中,哪个字符用于匹配数字?A. \dB. \DC. \wD. \W答案:A4. 正则表达式中,哪个字符用于表示“零次或多次”的量词?A. *B. +C. ?D. @答案:A5. 正则表达式中,哪个字符用于表示“一次或多次”的量词?A. *B. +C. ?D. @答案:B二、填空题6. 正则表达式`\d{3}`表示匹配______个数字。

答案:37. 正则表达式`\b[A-Z]\w*\b`用于匹配______。

答案:以大写字母开头的单词8. 正则表达式`[0-9a-fA-F]+`用于匹配______。

答案:十六进制数字9. 正则表达式`\w+`表示匹配一个或多个______字符。

答案:字母、数字或下划线10. 正则表达式`[^abc]`表示匹配除了______之外的任意单个字符。

答案:a、b、c三、简答题11. 请写出一个正则表达式,用于匹配美国电话号码格式(例如:123-456-7890)。

答案:`\d{3}-\d{3}-\d{4}`12. 请写出一个正则表达式,用于匹配电子邮件地址。

答案:`[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}`13. 请解释正则表达式`^https?://`的作用。

答案:匹配以"http"或"https"开头的URL。

四、应用题14. 给定字符串`"Hello, World!"`,请使用正则表达式找出所有的单词,并列出它们。

答案:使用正则表达式`\b\w+\b`可以匹配到"Hello"和"World"。

正则表达式练习题1

正则表达式练习题1

正则表达式与grep命令的实战演练
1,显示/etc/rc.d/rc.sysinit文件中以不区分大小的h开头的行;
2, 显示/etc/passwd中以sh结尾的行;
3, 显示/etc/fstab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
4, 查找/etc/rc.d/rc.local中包含“以to开始并以to结尾”的字串行;
5, 查找/etc/inittab中含有“以s开头,并以d结尾的单词”模式的行;
6, 查找ifconfig命令结果中的1-255之间的整数;
7,显示/var/log/secure文件中包含“Failed”或“FAILED”的行
8,在/etc/passwd中取出默认shell为bash
9.以长格式列出/etc/目录下以ns开头、.conf结尾的文件信息
10. 高亮显示passwd文件中冒号,及其两侧的字符
11. 配置passwd文件的用户名
12. 匹配/etc/services中开头结尾字母一样的单词。

编译原理(龙书)习题答案(chap2,3)

编译原理(龙书)习题答案(chap2,3)

DFA的状态图:
4) (a | b) * abb(a | b) * 根据算法3.25得到NFA:
DFA的转换表:
状态 -A{0} B{0,1} C{0,2} +D{0,3} +E{0,1,3} +F{0,2,3} a B B B E E E b A C D D F D
DFA的状态图:
2.2.6 为罗马数字构建一个上下文无关文法。
Rom anNum er al ThousandsHundredsTens Ones | Rom anNum er al Ones LowOnes| IV | V LowOnes| IX LowOnes | I | II | III Tens LowTens| XL | L LowTens| XC LowTens | X | XX | XXX Hundreds LowHundred s | CD | D LowHundred s | CM LowHundred s | C | CC | CCC Thousands M Thousands|
1试说明如何使用该文法生成串最左推导最左推导2试为这个串构造一棵语法分析树
第二章 一个简单的语法制导翻译器
2.2.1 考虑下面的上下文无关文法:
S S S | S S | a
1)试说明如何使用该文法生成串
aa a
最左推导
S S S S S S a S S aa S aa a
( X | a) * a( X | e) * e( X | i) * i( X | o) * o( X | u) * uX *
2)所有由按词典递增序排列的小写字母组成的串。
a * b * z *
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正则表达式与grep命令的实战演练
1,显示/etc/rc.d/rc.sysinit文件中以不区分大小的h开头的行;
2, 显示/etc/passwd中以sh结尾的行;
3, 显示/etc/fstab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
4, 查找/etc/rc.d/rc.local中包含“以to开始并以to结尾”的字串行;
5, 查找/etc/inittab中含有“以s开头,并以d结尾的单词”模式的行;
6, 查找ifconfig命令结果中的1-255之间的整数;
7,显示/var/log/secure文件中包含“Failed”或“FAILED”的行
8,在/etc/passwd中取出默认shell为bash
9.以长格式列出/etc/目录下以ns开头、.conf结尾的文件信息
10. 高亮显示passwd文件中冒号,及其两侧的字符
11. 配置passwd文件的用户名
12. 匹配/etc/services中开头结尾字母一样的单词。

相关文档
最新文档