正则表达式 学习笔记(三)
11.分组
你可以使用括号表示分组:
- 通过使用 Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day 匹配一周中的某一天
- (\w*)ility 与 \w*ility 相同。都是匹配一个由”ility”结尾的单词。稍后我们会讲解,为何第一种方法更加有用。
- 表示匹配一对括号。
- [()]表示匹配任意一个左括号或者一个右括号
- (red|blue)表示匹配red或者blue或者是一个空字符串
- abc()def与abcdef相同
- (red|blue)?与(red|blue|)相同
- \w+(\s+\w+)表示匹配一个或多个由空格分隔的单词
示例
\w+\W+\w+\W+\w+ = \w+(\W+\w+){2}
\w+\W+\w+\W+\w+\W+\w+\W+\w+\W+\w+ =
\w+(\W+\w+){5}
12.单词分隔符
- \b表示匹配一个单词分隔符
- \b\w\w\w\b表示匹配一个三字母单词
- a\ba表示匹配两个a中间有一个单词分隔符。这个正则表达式永远不会有匹配的字符,无论输入怎样的文本示例
13.换行符
一篇文本中可以有一行或多行,行与行之间由换行符分隔,比如
LINE一行文字
LINE BREAK 换行符
LINE一行文字
LINE BREAK 换行符
...
LINE一行文字
LINE BREAK 换行符
注意,所有的文本都是以一行结束的,而不是以换行符结束。但是,任意一行都可能为空,包括最后一行。行的起始位置,是在换行符和下一行首字符之间的空间。考虑到单词分隔符,文本的起始位置也可以当做是首行位置。最后一行是最后一行的尾字符和换行符之间的空间。考虑到单词分隔符,文本的结束也可以认为是行的结束。基于此概念:
- ^表示匹配行的开始位置
- $表示匹配行的结束位置
- ^&表示一个空行
^.*&
表示匹配全文内容,因为行的开始符号也是一个字符,"."会匹配这个符号。找到单独的一行,可以使用
^.*?$- \^\$表示匹配字符串“^$”
- [$]表示匹配一个$。但是,[^]不是合法的正则表达式。记住在方括号中,字符有不同的特殊含义。要想在方括号内匹配^,必须用[\^]
14.文本分界
在很多的正则表达式实现中,将^和$作为文本的开始符号和结束符号。
还有一些实现中,用\A和\z作为文本的开始和结束符号。
15.捕获组
正则表达式(\w*)ility表示匹配以ility结尾的词。第一个被捕获的部分是由\w*控制的。比如,输入的文本内容中有单词accessibility,那么首先被捕获的部分是accessib。如果输入的文本中有单独的ility,则首先被捕获的是一个空字符串。
总结:
- 字符:
a
b
c
d
1
2
3
4
etc. - 字符类:
.
[abc]
[a-z]
\d
\w
\s
.
代表任何字符\d
表示
“数字”\w
表示”字母”,[0-9A-Za-z_]
\s
表示 “空格, 制表符,回车或换行符”- 否定字符类:
[^abc]
\D
\W
\S
- 重复:
{4}
{3,16}
{1,}
?
*
+
?
表示 “零次或一次”*
表示 “大于零次”+
表示 “一次或一次以上”- 如果不加上?,所有的重复都是最长匹配的(贪婪)
- 分组:
(Septem|Octo|Novem|Decem)ber
- 词,行以及文本的分隔:
\b
^
$
\A
\z
- 转义字符:
\1
\2
\3
etc. (在匹配表达式和替换表达式中都可用)
- 元字符:
.
\
[
]
{
}
?
*
+
|
(
)
^
$
- 在字符类中使用元字符:
[
]
\
-
^
- 使用反斜杠可以忽略元字符:
\
转载于:https://www.cnblogs.com/CoffeeEddy/p/5615374.html
正则表达式 学习笔记(三)相关推荐
- 正则表达式 学习笔记1.3
书接上一回: 实例五:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...
- python3常用模块_Python学习笔记三(常用模块)
Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...
- Mongodb使用学习笔记(三)
文章目录 Mongodb使用学习笔记(三) 1. MongoDB 更新文档 1.1 update() 1.2 save() Mongodb使用学习笔记(三) 1. MongoDB 更新文档 参考:Mo ...
- K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程
K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- Ethernet/IP 学习笔记三
Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...
- 正则表达式 学习笔记4.3
下面看看逆序环视结构: public class GeneralSix { public static void main(String[] args) { String[] strings = ne ...
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
- 正则表达式 学习笔记3.4
第一段为合法html代码,第二段为不合法html代码.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office ...
最新文章
- RH033 Unit 9 vim: An Advanced Text Editor
- python读取文件读不出来-python文件读取失败怎么处理
- SQL SERVER 系列(7)数据表排序和聚集函数
- linux cp和rm命令
- 25LINQ拾遗及实例
- Java Jvm 中的垃圾回收机制中的思想与算法 《对Java的分析总结》-四
- javascript 停止事件冒泡以及阻止默认事件冒泡
- 【es】 check-rollover-ready read index [alinas-lcc] is not the wtiter index for alians [index-xx]
- HeadFirstJava——8_接口与抽象类
- LCD1602液晶显示设计
- JAVA 日期格式化
- 超简单的Oracle 数据库安装教程(Oracle安装包)
- 用天文方法计算二十四节气
- 全局zomm缩放后echarts鼠标偏移的问题(鼠标触发提示框位置有偏差)
- kettle-新建资源库connect资源库灰色解决
- 新浪微博Android客户端开发之OAuth认证篇
- 作业5管理用户、组及权限
- 视频教程-SpringBoot后台CRM项目(第一季)-Java
- 计算机技术应用体验,2018教师信息技术应用体验学习个人心得体会2篇
- .Net C# 发送带背景图html邮件(解决Outlook不显示背景图问题)
热门文章
- 11g r2 rac 11.2.0.2升级11.2.0.2.3 [PSU patch 12419353]
- 策略思维:市场的三个放弃点
- 考博英语是什么水平?
- 以面试官的经验分享毕业生和初级程序员通过面试的技巧
- WebGIS开发者入门
- 连接SQL server2008,并在SQL server2008中实现MySQL中group_concatd的分组;使用jsp和servlet实现页面的跳转和重写
- MATLAB 8乘8西洋跳棋棋盘绘制
- java是自由软件吗_开源LGPL——如何宣告自己的程式为自由软件
- GD32F405RGT6定时器固件库(所有定时器的配置(12个))
- python baseMap 实现 地图着色问题