10、正则表达式

元字符

正则表达式语法:

1、[...]:用来表示一组字符,单独列出:[amk] 匹配
'a','m'或'k'

--常用来指定一个字符集,字符集中的一个或多个都能被匹配:[abc];[a-z];[0-9];[A-Z].也可以写成[a-z0-9A-Z]

--元字符在字符集中不起作用:[abc$]

--补集匹配不在区间范围内的字符[^5]


2、^:匹配行首,符号放在字符串前面如:h=r'^hello '
r表示原意

--只匹配字符串的开始。但在MULTILINE模式里,也可以直接匹配字符串中的每个换行


3、$:匹配行尾,符号放在字符串后面如:o=r'boy$'



4、\:取消元字符变成普通字符串,

--反斜杠后面可以加不同的字符以表示不同的特殊意义:

\d--匹配任何十进制数;相当于[0-9]

\D--匹配任何非数字字符;相当于[^0-9]

\s--匹配任何空白字符;相当于[\t\n\r\f\v]

\S--匹配任何非空白字符;相当于[^\t\n\r\f\v]

\w--匹配任何字符数字字符;相当于[a-zA-Z0-9]

\W--匹配任何非字母数字字符;相当于[^a-zA-Z0-9]


5、{}:

1》{n}精确匹配n个前面表达式

2》{n,m}:匹配 n 到 m
次由前面的正则表达式定义的片段,贪婪方式



6、re*:匹配*号前面表达式0到多次,0次即没有,最多支持20亿次


7、re+:匹配1个或多个的表达式。跟上面的*不同的是,他最少要求有1次。

8、re?:匹配0个或1个由前面的正则表达式定义的片段,可以认为是表示某事物是可选的,

贪婪方式:

非贪婪模式:


9、compile(编译):当一个正则需要被多次使用的时候,可以使用complie方法将正则编译赋给一个变量。

语法:re.compile(正则,修饰符)
*正则可以是已赋值的变量名,也可以直接是正则内容譬如:r'hello'。修饰符在下面逐一呈现


10、re.I:大小写均可匹配。(修饰符)


11、re.match:尝试从字符串的开始匹配一个模式,匹配成功re.match方法返回一个匹配的对象matchobject,否则返回None。一般做是否能匹配的判断式

1》match用法:

2》使用match作为判断条件,执行语句块:

12、re.search:将字符串的所有字串尝试与正则表达式匹配,匹配成功返回对象matchobject,失败返回None。与match不同的是match只匹配开始,而search匹配所有。


13、re.findall:找到 RE
匹配的所有子串,并把它们作为一个列表返回。这个匹配是从左到右有序地返回。如果无匹配,返回空列表


14、re.sub:用于替换字符串中的匹配项。re.subn:返回替换的数据和替换的次数


15、.
匹配任意字符,除了换行符,


16、re.S:使 .
匹配包括换行在内的所有字符


17、re.M:多行匹配,影响 ^ 和 $ M:MULTILINE


18、re.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

来自为知笔记(Wiz)

时间: 2024-10-24 15:58:54

10、正则表达式的相关文章

LeetCode(10. 正则表达式匹配)

问题描述 给定一个字符串 (s) 和一个字符模式 (p).实现支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符. '*' 匹配零个或多个前面的元素. 匹配应该覆盖整个字符串 (s) ,而不是部分字符串. 说明: s 可能为空,且只包含从 a-z 的小写字母. p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *. 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a" 无法匹配

10. 正则表达式匹配

/*给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串. 说明 : s 可能为空,且只包含从 a - z 的小写字母. p 可能为空,且只包含从 a - z 的小写字母,以及字符 .和 *. 示例 1 : 输入 : s = "aa" p = "a" 输出 : false 解释 : "a&

leetcode新年病房暴乱康复计划 10.正则表达式匹配 DP

/** * @param {string} s * @param {string} p * @return {boolean} */ var isMatch = function(s, p) { let dp = []; let len = s.length; let _len = p.length; for(let i = 0; i <= len; i++){ dp.push([]); dp[i][0] = 0; } dp[0][0] = 1; for(let i = 0; i <= _le

leetcode 10.正则表达式

题目描述特别简洁: 先贴代码: class Solution { public : bool isMatch(string s ,string p){ int dp[100][100] = {0}; s.insert(0,1,'@');p.insert(0,1,'@'); //为了将空字符考虑在内,初始化插入@方便之后的操作 int ls = s.size(),lp = p.size(); dp[0][0] = 1; //初始化dp(p与s为空字符) for(int j = 1 ; j < lp

正则表达式判断数据格式

手机号: 1 public boolean customerPhonenumber(String customerPhonenumber){ 2 boolean IsRight=false; 3 // \\+\\d{13}|\\d{11} 4 String regex1="[1][\\d]{10}"; 5 String regex2="[+][\\d]{13}"; 6 if(customerPhonenumber.matches(regex1)) { 7 IsRig

正则表达式判断手机号是否11位数字

function checkMobile(str) { //写一个判断函数 var re = /^1\d{10}$/ //正则表达式 if (re.test(str)) { //判断字符是否是11位数字 $("#sj").html("手机号码格式正确"); $("#sj").css("color","green"); } else { $("#sj").html("手机号码格式

C#面向对象10_异常_正则表达式

异常_正则表达式 异常try-catch 在很多情况下,我们不确定程序是否能够正常运行,尤其是在需要第三方配合时,比如:用户输入.操作文件.连接数据库等等情况下,会有一些不可控的因素导致程序出现错误.因此,我们需要一种机制来处理程序的意外错误,这就是try-catch语句的应用范围了. 语法 try{ //有可能出现错误的代码 } catch(Exception 异常变量) { //对异常进行处理 }finally { //无论是否出现异常都会被执行的代码 } 其中: try用来尝试性的执行可能

正则表达式 2020.2.7

正则表达式*通用的字符串表达框架*简介表达一组字符串的表达式*判断某字符串的特征归属 例:'PY' 'PYY' 'PYYY' 'PYYYY' ...... P后面有无穷多个Y ---->正则表达式:PY+ 例:'PY'开头 后续存在不多于10个字符后续字符不能是'P'或'Y'如:'PYABC' √ 'PYKXYZ' ×用正则表达式----> PY[^PY]{0,10} 正则表达式的常用操作符 符号 含义 例子 .  表示任何单个字符(换行除外)    []  字符集对单个字符给出取值范围  [

MongoDB基础

MongoDB面向文档的数据库,不是关系型数据库NOsql 灵活,高效,易于扩展,功能完备的数据库 MongoDB的独特的工具: 1.索引 MongoDB支持辅助索引,也提供唯一的复合的地理空间索引能力 2.储存JavaScript 3.聚合:支持MapReduce 4.固定集合:集合的大小有上限 5.文件储存:存储大文件 6.不支持连接(join)和复杂的多行事务 命名规则: 1.集合名不能是空字符串"". 2.集合名不能含\0空字符,这个字符表示集合名的结尾 3.集合名不能以sys

MongoDB基础--查询、索引与聚合

1,初始化数据库,插入数据: doc=({"name": "peter", "position": "teacher"}) { "name" : "peter", "position" : "teacher" } > db.shiyanlou.insert(doc) > doc1=({"name": "to