【shell脚本】匹配函数的正则表达式
2012-09-17 23:51
633 查看
自己写了一个统计代码中的函数以及函数个数的正则表达式:
原理:
1.分析函数的语法特点:
函数实现部分的代码,所在行没有分号,因此,使用grep -v ';'过滤掉有分号的行;
函数实现部分可能有返回值声明,因此,使用grep'^[a-z]|[A-Z]',获取以字母开头的行;
函数实现部分肯定有括号,因此使用grep'(' filename.c | grep')'
缺点:
1.不能匹配以空白字符开头的函数实现;
2.不能匹配形参不在同一样的函数实现;
总结:
正则表达式是针对某种书写格式或者规律进行匹配的方法,它采用的是穷举法,因此只能尽量地去覆盖到所有的书写格式或规律,但是不能保证覆盖到全部,故我们应该根据我们目标格式去书写正则表达式,不必太过于追求完美,只要能达到目标就行^_^
参考文献:
[1].鸟哥的Linux私房菜-基础篇关于shell脚本的介绍,http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts.php
grep '(' filename.c | grep ')' | grep -v ';' | grep '^[a-z]|[A-Z]'
原理:
1.分析函数的语法特点:
函数实现部分的代码,所在行没有分号,因此,使用grep -v ';'过滤掉有分号的行;
函数实现部分可能有返回值声明,因此,使用grep'^[a-z]|[A-Z]',获取以字母开头的行;
函数实现部分肯定有括号,因此使用grep'(' filename.c | grep')'
缺点:
1.不能匹配以空白字符开头的函数实现;
2.不能匹配形参不在同一样的函数实现;
总结:
正则表达式是针对某种书写格式或者规律进行匹配的方法,它采用的是穷举法,因此只能尽量地去覆盖到所有的书写格式或规律,但是不能保证覆盖到全部,故我们应该根据我们目标格式去书写正则表达式,不必太过于追求完美,只要能达到目标就行^_^
参考文献:
[1].鸟哥的Linux私房菜-基础篇关于shell脚本的介绍,http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts.php
相关文章推荐
- shell脚本之正则表达式、函数、grep、sed、awk、printf等基本命令配置详解
- Shell脚本中通过正则表达式匹配IP地址
- Shell脚本中通过正则表达式匹配IP地址
- Linux--shell脚本之正则表达式
- php中使用正则表达式匹配的函数
- 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式
- 【Python3 爬虫】09_正则表达式(re.math()、re.search()、re.sub()、全局匹配函数)
- shell 脚本-正则表达式
- 匹配正则表达式的函数BOOL型(修正一下)
- 详解Linux--shell脚本之正则表达式
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
- 给xpath添加正则表达式匹配函数
- 详解shell脚本(八)——正则表达式和文本替换
- 鸟哥Linux私房菜笔记(二):正则表达式、shell脚本
- shell脚本学习:正则表达式之sed,tr篇
- HIVE学习与实践(四):linux shell 脚本 for in 的用法,join 用法,正则表达式函数regexp_extract
- oracle正则表达式函数 匹配
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- PHP 正则表达式匹配 preg_match 与 preg_match_all 函数
- shell脚本里面通过正则匹配操作字符串的问题