如何看懂复杂的正则表达式
2013-04-29 08:41
197 查看
基本思路:拆分->各个击破(拆分法,有点像分析复杂的英文语句)
解释:
先将一个,很长的,很复杂的正则表达式,从左向右,一点点读取(读取依据是基本的正则表达式),分析,一点找到某部分的内容,是一个逻辑概念上的独立的一块,就暂时拆分出来,如此,一点点把复杂的正则表达式,拆分成很多个逻辑上独立的小块,
然后针对每个小块的表达式,再去分析其含义
每个小块的正则表达式都搞懂后
把和所有的含义,合并出一个整体的含义
最后就可以实现,用人类的语言,把对应的复杂的正则表达式,一点点解释出来了,即:
把,之前看不懂的,复杂的正则表达式,翻译成,人类可以看懂读懂的语言(至少先让你自己读懂看懂)
1.任何复杂的正则表达式,都是由写正则表达式的人,从简单到复杂一点点写出来的。(写比看难多了)
所以,理论上,如何读懂复杂的正则表达式,也就是一个反向解析的过程,即将复杂的拆分成多个简单的,功能上,逻辑是独立的子表达式,然后再去分析其含义,最终再合并出来整体的,复杂的含义。
2.正则表达式,即使各种语言的正则表达式的库函数,去解析的时候,也是从左到右,一点点分析,一点点拆分,将复杂的差分成多个子表达式,以实现,计算机语言内部,去理解此表达式的。
此处,只是通过人类的方式,手动从左到右,一点点分析而已,也算是和计算机语言识别正则的类似的过程。
3.虽然正则表达式,不同的语言,具体的写法,有些略微的差别,但是本质上的,绝大部分的正则表达式的写法,都是基本类似的。
来源于: http://www.crifan.com/
解释:
先将一个,很长的,很复杂的正则表达式,从左向右,一点点读取(读取依据是基本的正则表达式),分析,一点找到某部分的内容,是一个逻辑概念上的独立的一块,就暂时拆分出来,如此,一点点把复杂的正则表达式,拆分成很多个逻辑上独立的小块,
然后针对每个小块的表达式,再去分析其含义
每个小块的正则表达式都搞懂后
把和所有的含义,合并出一个整体的含义
最后就可以实现,用人类的语言,把对应的复杂的正则表达式,一点点解释出来了,即:
把,之前看不懂的,复杂的正则表达式,翻译成,人类可以看懂读懂的语言(至少先让你自己读懂看懂)
1.任何复杂的正则表达式,都是由写正则表达式的人,从简单到复杂一点点写出来的。(写比看难多了)
所以,理论上,如何读懂复杂的正则表达式,也就是一个反向解析的过程,即将复杂的拆分成多个简单的,功能上,逻辑是独立的子表达式,然后再去分析其含义,最终再合并出来整体的,复杂的含义。
2.正则表达式,即使各种语言的正则表达式的库函数,去解析的时候,也是从左到右,一点点分析,一点点拆分,将复杂的差分成多个子表达式,以实现,计算机语言内部,去理解此表达式的。
此处,只是通过人类的方式,手动从左到右,一点点分析而已,也算是和计算机语言识别正则的类似的过程。
3.虽然正则表达式,不同的语言,具体的写法,有些略微的差别,但是本质上的,绝大部分的正则表达式的写法,都是基本类似的。
来源于: http://www.crifan.com/
相关文章推荐
- 如何教你看懂复杂的正则表达式
- 应该如何构造复杂的正则表达式
- 复杂的正则表达式应该如何构造
- 应该如何构造复杂的正则表达式
- 如何在SQL中写正则表达式(适用于Ms SQL Server 2000以上版本)
- linux find 命令中 如何使用正则表达式
- 正则表达式之二---稍复杂一点的匹配符
- js正则表达式:验证邮箱格式、密码复杂度、手机号码、QQ号码(未测试)
- Python正则表达式如何进行字符串替换
- Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?
- 如何正确使用带有"g"标记的javascript正则表达式
- 在linux下,如何在C语言中使用正则表达式
- 用JS的正则表达式如何判断输入框内为中文或者是英文数字,或者是三者混编_乱码...
- 如何实现正则表达式的JavaScript的代码高亮
- 如何通过正则表达式判断一组字符串是否符合规范,首字母必须是字母、$、或是下划线
- 如何在C语言中使用正则表达式
- 如何用正则表达式移除script中的脚本
- 如何用正则表达式来判断素数?
- js里如何将字符串转成正则表达式
- Python如何使用正则表达式匹配中文