博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式的知识普及
阅读量:6201 次
发布时间:2019-06-21

本文共 1123 字,大约阅读时间需要 3 分钟。

  hot3.png

1.什么事正则表达

正则表达式是可以匹配文本片段的模式。例如'python'可以用来匹配字符串'python'。你可以用这种匹配行为搜索文本中的模式,并且用计算后的值替换特定模式,或者将文本进行分段。

  • 通配符
正则表达式可以匹配任意一个的字符串。符号为(.),可以匹配除了换行之外的任意字符。例如正则表达式‘.ython',可以匹配’python',或者'jython',或者' ython'等,但不能匹配'cpython'或者'ython'这两个,因为(.)表示一个字符串,而不是没有或者多于一个。
  • 对特殊字符进行转义
但,当真的需要匹配(.)这个符号时,需要用到转义字符\。例如正则表达式'python\.org'匹配'python.org'。而如果是'python.org',则还可以匹配'pythonaorg'或者'pythonworg'等,不符合我们的想法。
  • 字符集
可以使用中括号来创建字符集,表示中括号内的任意字符。例如正则表达式'[pj]ython'匹配'python'和'jython',其他内容就不能再匹配了。而[a-z]表示字符集a到z中的任意一个字符,可以选用反转字符[^a-c]表示除了a,b,c外的任意一个字符。
  • 选择符和子模式
如果我们只想从几个里面选择其中一个的话,可以使用管道符号(|),例如正则表达式'python|perl',就只可以从'python'或者'perl’两个匹配中选择一个。可以对那个表达式进行简化,得到'p(ython|erl)'。这就是子模式。
  • 可选项和重复子模式

在子模式后面加上问号,就变成可选项。它可能会出现在匹配字符串中,但并非必须的。例如,下面这个正则表达式:‘(http://)?(www\.)?python\.org',这里会匹配'http://www.python.org'或者'http://python.org'或者'www.python.org'或者'python.org'这四种情况。

问号表示子模式可以不出现或者出现一次。其他情况就如下

(pattern)*:表示pattern可以出现0次,1,次,2次等等

(pattern)+:表示pattern至少出现1次

(pattern){m,n}:表示pattern至少出现m次,至多出现n次

  • 字符串的开始和结尾
目前为止,所出现的模式匹配都是针对整个字符串,但也可以对表达式的字符串确定其开始位置还是结尾位置。(^)标记开始,美元符号($)表示结尾。如(^ht+p)就是表示h开头的字符串,而(ht+p$)表示p结尾的字符串。

转载于:https://my.oschina.net/gzckj/blog/102459

你可能感兴趣的文章
2: Eclipse反编译工具Jad及插件JadClipse配置
查看>>
[数据结构]二叉树创建与遍历
查看>>
集群、分布式、负载均衡区别
查看>>
python使用snappy压缩
查看>>
ModelBinder模型绑定扩展绑定cookie
查看>>
ES6 箭头函数
查看>>
ORA-01034: ORACLE not available 出错
查看>>
报表工具——开源还是商用
查看>>
微软职位内部推荐-SENIOR SDE
查看>>
mysql 案例 ~超时时间设置
查看>>
Android 扫描蓝牙设备
查看>>
编译安装php容易出现的问题以及解决办法
查看>>
oracle之 db file sequential read等待事件优化思想
查看>>
【06-18】CentOS使用笔记
查看>>
Boost filessystem...
查看>>
阿里云负载均衡权重管理脚本
查看>>
微信小程序之缓存——不同页面传递数据
查看>>
游戏核心算法原理
查看>>
6.15 分解IP地址
查看>>
shell脚本执行的三种方式
查看>>