正则表达式

52. 正则表达式匹配

别来无恙 提交于 2019-12-27 17:31:05
文章目录 题目描述 1. 递归 代码实现 2. dp自顶向下备忘录 代码实现 复杂度分析 3. dp自底向上 代码实现 复杂度分析 题目描述 1. 递归 代码实现 /** * @Classname Solution * @Description 正则表达式匹配 * @Date 2019/12/24 10:45 * @Author SonnSei */ public class Solution { public static boolean match ( char [ ] str , char [ ] pattern ) { if ( str == null || pattern == null ) return false ; return match ( str , 0 , pattern , 0 ) ; } private static boolean match ( char [ ] str , int sIndex , char [ ] pattern , int pIndex ) { if ( pIndex == pattern . length ) return sIndex == str . length ; boolean firstMatch = sIndex < str . length && ( str [ sIndex ] == pattern [

正则表达式

北战南征 提交于 2019-12-27 11:42:02
. 通配符 \ 转义用 \b 截断 boundary \w 0-9 a-z A-Z 每次只代表一个字符 \W 是\w匹配不上的内容 \d 0-9 不包括小数 \D匹配数字外的内容 \s 匹配空,包括空格、制表符、断行等 \S 匹配\s外的内容 [] 之间的代表包含关系,里面的内容是”或“的关系 - 代表之间,如a-z代表a到z 还可以使用转义字符+万国码仅匹配中文 \ + 代表其相邻的前一个字符可以出现 一次 或 多次 \ * 代表其相邻的前一个字符可以出现 零次 或 多次 ? 代表其相邻的前一个字符可以出现 零次 或 一次 {} 代表其相邻的前一个字符可以出现次数的范围,里面可以填? + () 内的内容,可用$1,$2等匹配,其中$1代表第一个括号内的内容 参考:https://www.bilibili.com/video/av18182693?p=11 来源: CSDN 作者: 785sbafdbnd 链接: https://blog.csdn.net/chenhanxu7855/article/details/103724004

正则表达式的使用

和自甴很熟 提交于 2019-12-27 10:09:34
一、限定密码长度和保密程度的正则   至少8位长度,至少使用数字、字母、特殊字符中的两种: ^(?=.*[a-zA-Z0-9])(?=.*[a-zA-Z\W_])(?=.*[0-9\W]).{8,}$    注:\w包含数字、字母、下划线,\W就不含下划线     数字:[0-9]或\d     字母:[a-zA-Z]     字符:[\W_]    解析:     1、 (?=pattern) 的用法:表达式pattern只作为一个查询条件,相当于加了一个额外必须满足的条件,但不参与正则匹配。并该表达式是匹配全文。       例如:匹配电话号码的正则是:^[0-9]{11}$,如果要判断电话号码里有没有5或者6,可以这么写:^(?=.*[56])[0-9]{11}$。            2、当有多个 (?=pattern1)(?=pattern2) ,表达式应同时满足,即达到与的关系。       本例中,既是:第一表达式字母数字集合,则表达式要么有字母有么有数字,至少一个;但同时也要满足第二个表达式字母-非数字、字母集合;并且满足第三个表达式数字-非字母数字集合。       三个表达式相互影响,则达到目的-----至少两种字符。解析:密码只有一种字符,假如只有数字,那么本例中第一、第三个表达式,但是不满足第二个表达式,结果就是false。同样,如果自由字母

JavaScript 常用正则表达式

南笙酒味 提交于 2019-12-27 07:22:52
========================== 正则表达式 =========================== 常用元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 常用限定符 代码/语法 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 常用反义词 代码/语法 说明 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \D 匹配任意非数字的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou这几个字母以外的任意字符 ========================== 常用表达式 =========================== 功能 正则表达式 中文字符 [\u4e00-\u9fa5] 双字节字符 [^\x00-\xff] 空白行 \s 邮箱地址 \w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14} 网址URL ^((https|http|ftp|rtsp|mms)?:\/\/)[^

正则表达式学习

限于喜欢 提交于 2019-12-27 07:18:16
1.常用元字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 2.字符转义 如 . ,* 得 使用 \.和 \*。要查找 \本身,你也得用 \\. 3.重复 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次  [1,2,3] 表示其中一个 4.分支匹配 具体方法是用 |把不同的规则分隔开 ,匹配中一个即可 0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能 匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。 5.分组 即将()里边的当做一组 前面提到了怎么重复单个字符(直接在字符后面加上限定符就行了);重复多个字符用 小括号来指定 子表达式(也叫做 分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作(后面会有介绍)。 (\d{1,3}\.){3}\d{1,3}是一个 简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它: \d{1,3}匹配 1到3位的数字, (\d{1,3}\.){3}匹配 三位数字加上一个英文句号

正则表达式

自闭症网瘾萝莉.ら 提交于 2019-12-26 23:49:43
正则表达式 基本概念 字符 含义 举例 . 匹配任意一个字符 如“abc.”,可以匹配abc2、abcd、abc%等 [] 匹配括号中的任意一个字符 如“[abc]d”,可以匹配ad、bd、cd - 在[]括号范围内表示范围 如“[0-9]”,表示匹配0至9中任意一个数字 ^ 位于[]内开头,匹配除括号内字符以外的任意字符 如“[^ab]”,表示匹配除了a、b之外的其他字符 ? 紧跟其前面的单元匹配零次或者一次 + 紧跟其前面的单元匹配一次或者多次 * 紧跟其前面的单元匹配零次或者多次 {N} 紧跟其前面的单元匹配精确的N次 如“k{3}”,表示精确匹配kkk。 {N,} 紧跟其前面的单元匹配至少N次 {,M} 紧跟其前面的单元匹配最多M次 {N,M} 紧跟其前面的单元匹配至少N次,最多M次 ^ 匹配行首的位置 $ 匹配行尾的位置 \< 匹配单词开头的位置 \> 匹配单词结尾的位置 \b 匹配单词的边界 如“\bA.{3}T\b”,表示匹配类似A123t、AXYZT等单词 \B 匹配非单词边界 如“\Bh\B”,表示匹配的h不在单词边界,如host则不符合,因为h在单词的边界,而she则符合匹配。 | 连接两个子表达式,表示或的关系 如“n(ei|mn)”,匹配nei或者nmn () 将正则表达式部分组成分组,可引用分组 \ 转义字符 \d 匹配数字字符,效果同[0-9] \D

Regular Expression

一世执手 提交于 2019-12-26 20:48:43
转载自:http://www.runoob.com/js/js-regexp.html JavaScript 正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。 搜索模式可用于文本搜索和文本替换。 什么是正则表达式? 正则表达式是由一个字符序列形成的搜索模式。 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。 正则表达式可以是一个简单的字符,或一个更复杂的模式。 正则表达式可用于所有文本搜索和文本替换的操作。 语法 /正则表达式主体/修饰符(可选) 其中修饰符是可选的。 实例: var patt = /runoob/i 实例解析: /runoob/i 是一个正则表达式。 runoob 是一个 正则表达式主体 (用于检索)。 i 是一个 修饰符 (搜索不区分大小写)。 使用字符串方法 在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。 search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。 replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 search()

RegExp对象

孤人 提交于 2019-12-26 20:46:50
JavaScript提供了一个RegExp对象来完成有关正则表达式的操作和功能,每一条正则表达式模式对应一个RegExp实例。有两种方式可以创建RegExp对象的实例。 使用RegExp的显式构造函数,语法为:new RegExp("pattern"[,"flags"])。 使用RegExp的隐式构造函数,采用纯文本格式:/pattern/[flags]。 pattern部分为要使用的正则表达式模式文本,是必须的。在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号括起来;在第二种方式中,pattern部分嵌套在两个“/”之间,不能使用引号。 flags部分设置正则表达式的标志信息,是可选项。如果设置flags部分,在第一种方式中,以字符串的形式存在;在第二种方式中,以文本的形式紧接在最后一个“/”字符之后。flags可以是以下标志字符的组合。 g是全局标志。如果设置了这个标志,对某个文本执行搜索和替换操作时,将对文本中所有匹配的部分起作用。如果不设置这个标志,则仅搜索和替换最早匹配的内容。 i是忽略大小写标志。如果设置了这个标志,进行匹配比较时,将忽略大小写。 m是多行标志。如果不设置这个标志,那么元字符“^”只与整个被搜索字符串的开始位置相匹配,而元字符“$”只与被搜索字符串的结束位置相匹配。如果设置了这个标志,“^

jmeter官方添加建议排除模式无效

ⅰ亾dé卋堺 提交于 2019-12-26 12:29:47
又遇到了一个坑…… 使用http代理服务器时,添加排除模式 选择添加建议的排除模式,但是正则表达式一直都没有起效果,仍然抓到了woff文件等。 在正则表达式后面加.*即可解决 该去学学正则表达式了…… 来源: CSDN 作者: zy_lili 链接: https://blog.csdn.net/qq_34709203/article/details/103710211

正则表达式(python)

谁说我不能喝 提交于 2019-12-26 10:13:30
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 re模块 re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。注意: re模块是python独有的 正则表达式所有编程语言都可以使用 re模块、正则表达式是对字符串进行操作 因为,re模块中的方法大都借助于正则表达式,故先学习正则表达式。 实例代码: 基础 import re str1 = "S12345s6372S43" str2 = "fangweijie is a good man!GoOd" print ( re . match ( 's' , str1 , flags = re . I ) ) print ( re . search ( '3' , str1 ) ) print ( re . findall ( '2' , str1 ) ) print ( re . findall ( '[246]' , str1 ) ) print ( re . findall ( '(637),(897)' , str1 ) ) print ( re . findall ( 'good' ,