day0321正则表达式
一.正则表达式
1.定义一个规则,检测某一段字符串是否符合规则,将符合规则的字符匹配出来。
2.只和字符串相关
3.字符组
描述一个字符位置的内容
3.1 [012345]检测0,1,2,3,4,5
3.2 [0-5]检测从0到5
3.3 不能是[9-5],不能由大到小来规定范围。
3.4 字符组的所有范围是指向ascii
3.5 [A-Z0-9a-z] 这里无逗号,分隔符
4.元字符:优先级从左至右
| 元字符 | 属性 |
| \d | 匹配数字digit |
| \w | 匹配字母或数字或下划线word |
| \s | 匹配任意空白(包括制表符,换行符,空格)space |
| \D | 匹配非数字 |
| \W | 匹配非字母或数字或下划线 |
| \S | 匹配非空白字符 |
| \n | 匹配换行符 |
| \t | 匹配制表符Tab |
| \b | 匹配一个单词结尾,开头结尾都可以 |
| . | 匹配换行符之外的所有 |
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的结束 |
| () | 匹配括号内的表达式,也表示一个组 |
| a|b | 匹配字符a或者b |
| [] | 匹配字符组内的字符 |
| [^ ] | 匹配除了字符组的所有字符 |
5.量词
| 量词 | 用法说明 |
| * | 重复0次或者多次 |
| + | 重复一次或更多次 |
| ? | 重复0次或者1次 |
| {n} | 重复n次 |
| {n,} | 重复n次或者多次 |
| {n,m} | 重复n到m次 |
| 示例 | 匹配项 |
| \d+\.\d+ | 小数 |
| [1-9]\d*|0 | 整数 |
| \d+\.\d+|([1-9]\d*|0) | 整数或小数 |
| \d+\.?\d* | 整数或小数 |
| \d+(\.\d+) |
注意:\d+\.\d* 这里会匹配出【1.】满足了条件 这样是不合理的。
5.贪婪匹配
在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配。
| \* | 无线匹配 |
| \+ | 至少匹配一次 |
| 孙.{1,3} | 孙匹配最多三次(贪婪) |
6.转义
r:在字符串前加r,让整个字符串不转义。
7.惰性匹配
手动设置,尽可能少的匹配。
| 示例 | 用法 |
| a.* | 以a开头任意字符 |
| a.*? | ?控制.* 非贪婪取最少次 |
| a.*x | 首个a与最后一个x,连同之间都取出来(回溯算法) |
| a.*?x | 首个a与首个x,连同之间都取出来 |
8.总结:
8.1 ret=sorted(list) 占内存,生成一个新的列表
8.2ret=reversed(list) 可迭代的iterator,用list包装
注意:list本身提供方法,对list自身进行修改。
内置函数是在生成一个新的
8.3 random 不重复随机数据
choice 可能出现重复的数据
8.4
length//2===》abcabc》range(1,3)=》ab
length//2+1===》abcabc》range(1,4)=》abc
8.5
全球时间戳一样,只是结构化时间不一样 东八区北京和伦敦的时间区别
8.6
双端队列和列表区别:
效率——底层数据结构上
8.9
repr函数:
repr() 函数将对象转化为供解释器读取的形式。(之前掉过坑 print没打印出换行符,但是加了repr就显示出来了)
day0321正则表达式的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
随机推荐
- 转发-基于ASP.NET MVC 4/5 Razor的模块化/插件式架构实现
基于ASP.NET MVC 4/5 Razor的模块化/插件式架构实现 概述 在日常开发中, 我们经常谈起模块化/插件化架构,这样可既可以提高开效率,又可以实现良好的扩展性,尤其对于产品化的系统有 ...
- 第三部分:Android 应用程序接口指南---第二节:UI---第十一章 样式和主题
第11章 样式和主题 style是用于指定View或window的外观和格式的一系列属性的集合.style可以指定高(height).填补(padding).字体颜色.字体大小.背景颜色等等属性.st ...
- 1.揭开消息中间件RabbitMQ的神秘面纱
当你看到这篇博文的时候,相信你至少已经知道RabbitMQ 是一个非常优秀的消息中间件,它使用专门处理高并发的Erlang 语言编写而成的消息中间件产品. 当然如果你不知道也没关系,读完本篇你将Get ...
- GSSAPIAuthentication=no
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5的通用网络安全系统接口.该接口 ...
- ios UIButton设置高亮状态下的背景色
一,通过按钮的事件来设置背景色 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - (void)viewDidLoad { [ ...
- stm32之TIM+ADC+DMA采集50HZ交流信号
http://cache.baiducontent.com/c?m=9d78d513d98207f04fece47f0d01d7174a02d1743ca6c76409c3e03984145b5637 ...
- NoSuchMethodError: ... addOnCompleteCallback
问题描述: 使用ES 2.3.1和Spark streaming 2.1时,出现以上报错信息. 原因: addOnCompleteCallback方法在spark2.0中移除了 The addOnCo ...
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——安装配置NTP服务,保证集群时间保持同步
一.所有节点上使用yum安装配置NTP服务yum install ntp -y 二.选定一台节点作为NTP server, 192.168.58.11修改/etc/ntp.conf vim /etc/ ...
- go语言内置基础类型
1.数值型(Number) 三种:整数型.浮点型和虚数型(有符号整数表示整数范围 -2n-1~2n-1-1:无符号整数表示整数范围 0~2n-1) go内置整型有:uint8, uint16, uin ...
- Oracle中add_months()函数的用法
查询当前时间1个月以前的时间: select add_months(sysdate,-1) from dual; 查询当前时间1个月以后的时间: select add_months(sysdate,1 ...