一、正则表达式概述
文本无处不在,web页面,商业文档,电子邮件内容,代码都由文本组成。
所有文本组合到一起就构成了可以通过正则表达式进行匹配的字符序列
面对大量文档需要更新时候,高效的查找手段尤为重要。正则表达式可以实现多种有用文本处理形式的自动化
1.1 定义
正则表达式是一种 由具有特殊含义和功能的字符或字符组合组成的,来匹配文本中的字符序列的*字符模式*。
只能在其他语言或应用程序中使用
1.2 作用
- 查找重复单词
- 检测Web表单的输入
- 转换日期格式
- 发现拼写错误
- 为URL添加链接
本质作用:
判断一个字符序列是否与一个模式相匹配源数据可以是全部匹配或者部分匹配也可以(只能比模式多不能比之少,少则不匹配)
正则表达式在源数据中,对模式中所有部分都找到了相应的匹配项,也就得到了匹配项正则表达式可用
元字符,字符类,交替选择
正则表达式的模式中各个组件必须一次性,一股气全部匹配上才算匹配成功,成功后进入下一轮的匹配
正则表达式对于数据源中匹配当前组件的下一个字符(a) 不匹配当前组件的情况,会进入下一个组件对a的匹配
- 查找文本块
- 替换文本块
- 测试文本块
1.3 使用过的正则表达式
- 文件处理软件,Word,WPS
- 命令行
- 在线搜索
1.4 正则表达式学习困难
-
语法神秘简洁
元字符:在正则表达式模式中具有特殊含义的字符或字符组合 -
空格问题,对空格的修改可能会导致正则表达式含义的改变
-
没有统一的标准定义正则表达式的语法
-
各种实现之间的差别,实现不规范
-
不同环境下的字符含义不同
-
支持语法的不同版本也会提供不同版本的正则表达式功能
-
一个问题没有标准答案,灵活
-
使用正则表达式的目的,要操作的源数据内容,对源数据的了解程度,所定义模式的精确程度
1.5 支持正则的编程语言
1.6 替换大量文本