正则表达式

leetcode 10.正则表达式

若如初见. 提交于 2020-04-04 18:04:16
题目描述特别简洁: 先贴代码: 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; j++){ for(int i = 0; i < ls; i ++){ if(i != 0 && (s[i] == p[j] || p[j] == '.') && dp[i-1][j-1] == 1 ){ //直接匹配 dp[i][j] = 1; } else if(p[j] == '*') //当p[j]为*时情况较为复杂 { if(j - 2 >= 0 && dp[i][j - 2] == 1) //可以直接把零个随意字符通配Σ*忽略 { dp[i][j] = 1; } else if(i != 0 && (dp[i - 1][j] == 1 || dp[i - 1][j - 1] == 1) && (s[i] == p[j - 1] || p[j-1] == '.')) //将Σ

python正则表达式

不想你离开。 提交于 2020-04-04 15:07:06
1.定义 正则表达式是一种字符串匹配的规则。其实觉得叫规则表达式更容易理解。它表示的是一种字符串模式。 2.正则表达式的规则 (1)普通字符规则 即以普通字符本身作为规则,它匹配自身,如A,a,1 (2)特殊字符规则 . 匹配除换行符的所有字符 ^ 匹配字符串开头 $ 匹配字符串结尾 + 重复前面的规则一次或多次 * 重复前面的规则零次或多次 ?重复前面的规则零次或一次 {n,m} 重复前面的规则n次到m次 (3)特殊序列规则 \d 匹配十进制数字 \w 匹配字母、十进制数字、下划线,即[a-zA-Z0-9_] \s 匹配空白符,如空格、制表符等 \b 匹配单词边界 [...] 匹配括号里的任意一个字符 () 规则分组 \N 这里的N是数字,代表反向引用前面的规则分组,如 (the)\1则匹配 the the,这里的\1引用的就是前面(the)这个分组 3.贪婪和非贪婪 当使用了重复次数的模式时,默认是贪婪匹配,即尽可能长去匹配符合规则的字符串,非贪婪是尽可能短的匹配,在重复次数规则后加?就是非贪婪模式匹配,如a+?,这个规则就是匹配a 来源: https://www.cnblogs.com/buddy916/p/12631159.html

Notepad++正则表达式查找替换文本中文字符

[亡魂溺海] 提交于 2020-04-04 13:44:58
测试需求 测试工具中xml配置文件中注释字段包含中文字符,在Win10系统下使用工具中偶尔会出现中文乱码导致配置文件失效。解决方法将配置文件中的中文注释换成英文注释或者直接替换删除。如何将配置文件中的中文字符查找删除? 操作步骤 在Notepad文本工具中使用正则表达式匹配中文字符并替换。当然你可以采用Python写个小工具也无不可。Notepad中使用正则表达式[^\x00-\xff]匹配中文字符。 1、构造包含中文文本用于测试,包含中文字符、普通字符和特殊字符。 2、 中文字符正则表达式匹配:[^\x00-\xff]。 其中\x00-\xff匹配ASCII代码中十六进制代码为00-ff的字符,加个取反^,则就表示表示匹配非单字节的字符,例如汉字,汉字符号等字符集。如下 3、完成替换,中文字符已全部替换。替换后文本如下: 附录 ASCII字符集: http://www.asciitable.com/ 来源: https://www.cnblogs.com/linyfeng/p/12630701.html

shell(2):正则表达式

大城市里の小女人 提交于 2020-04-03 18:38:04
一、整理正则表达式博客 (1)正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep、sed、awk,它们三者均可以解释正则。 正则介绍: ^行首 $行尾 .除了换行符以外的任意单个字符 .*所有字符 *:左边的那一个字符有0个到无穷个 +:左边的那一个字符有1个到无穷个 ?:左边的那一个字符有0个到1个 {n}:左边的那一个字符有n个 {n,m}:左边的那一个字符有n个到m个 {n,}:左边的那一个字符有n个到无穷个    []字符组内的任一字符 [^]对字符组内的每个字符取反(不匹配字符组内的每个字符) ^[^]非字符组内的字符开头的行 [a-z]:所有的小写字母 [A-Z]:所有的大写字母 [a-zA-Z]:所有的大小写字母,等于[a-Z] [0-9]:数字 \<单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词 \>单词尾 注意的一点是:如果要匹配的字符就是-本身话,必须放到最后去[123123\-]    扩展正则sed 加 -r参数或转义 grep 加-E或egrep或转义 awk直接支持,但不包含{n,m} 可以使用--posix支持 awk '/ro

常用正则表达式

心已入冬 提交于 2020-04-02 21:55:47
  匹配中文字符的正则表达式: [\u4e00-\u9fa5]   评注:匹配中文还真是个头疼的事,有了这个表达式就好办了   匹配双字节字符(包括汉字在内):[^\x00-\xff]   评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)   匹配空白行的正则表达式:\n\s*\r   评注:可以用来删除空白行   匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />   评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力   匹配首尾空白字符的正则表达式:^\s*|\s*$   评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式   匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*   评注:表单验证时很实用   匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*   评注:网上流传的版本功能很有限,上面这个基本可以满足需求   匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$   评注:表单验证时很实用   匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}   评注

正则表达式补充内容测试

故事扮演 提交于 2020-04-02 21:25:45
import java.util.regex.*; public class RegPlus{ public static void main(String[] args){ //group(); //reference(); flags(); } //non-capturing groups private static void group(){ String str = "drfajian"; Pattern p1 = Pattern.compile("[a-z]{3}(?=a)"); Pattern p2 = Pattern.compile("(?=a)[a-z]{3}"); Pattern p3 = Pattern.compile("[a-z]{3}(?!a)"); Pattern p4 = Pattern.compile("(?!a)[a-z]{3}"); Matcher m1 = p1.matcher(str); Matcher m2 = p2.matcher(str); Matcher m3 = p3.matcher(str); Matcher m4 = p4.matcher(str); while(m1.find()){ System.out.print(m1.group() + " "); } System.out.println(); while(m2

正则表达式

六眼飞鱼酱① 提交于 2020-04-02 20:14:37
正则表达式 基本语法 字符类 .   匹配任意一个字符          例:abc. 可以匹配abcd、abc3 等 []  匹配括号中的任意一个字符      例:[abc]d可以匹配ad、bd、cd -  在[]括号内表示字符范围       例:[0-9a-fA-F]可以匹配以为十六进制数字 ^  位于[]括号内的开头,匹配除括号中的字符之外的任意一个字符 数量限定符 ?   紧跟在他前面的单元应匹配零次或一次 +  紧跟在他前面的单元应匹配一次或多次 *  紧跟在他前面的单元应匹配零次或多次 {N} 紧跟在他前面的单元应精确匹配N次 {N,} 紧跟在他前面的单元应匹配至少N次 {,M} 紧跟在他前面的单元应匹配最多M次 {N,M} 紧跟在他前面的单元应匹配至少N次,最多M次 例: aa?       匹配aa、aaa aa+       匹配aaa、aaaa...等 [0-9][0-9]*   匹配至少一位数字 [1-9][0-9]{2}  匹配从100到999的整数 [1-9][0-9]{2,} 匹配三位数以上(含三位数)的整数 [0-9]{,1}    相当于[0-9]? 位置限定符 ^  匹配行首的位置   $  匹配行末的位置 \<  匹配单词开头的位置 \>  匹配单次结尾的位置 \b  匹配单词开头或结尾的位置 \B  匹配非单词开头或结尾的位置 例:

10 jmeter之动态关联

霸气de小男生 提交于 2020-04-02 19:35:41
jmeter中关联是通过之前请求的后置处理器实现的,具体有两种方式:XPath Extractor(一般xml的时候用的多)和正则表达式提取器。 以webtours登录为例进行演示login.jmx 1.Web Tours开启关联、注册账号 在开始菜单找到并点击Start HP Web Tours Server(或者在本机安装loadRunner的路径下找到\HP\LoadRunner\WebToursStartServer.bat,双击运行)。 在开始菜单找到并点击HP Web Tours Application(或者打开浏览器,输入地址http://127.0.0.1:1080/WebTours/,回车进入)首页。 在Web Tours首页点击administration,进入Administration Page,勾选第三项,点击update,返回首页即可。 可以自己注册(sign up now)账号登录,或者用默认账号密码(jojo/bean)登录。 2.badboy录制webtours登录 3.导入jmeter 4.找出需要关联的请求(nav.pl) 右击请求1-->添加-->后置处理器-->正则表达式提取器-->配置如下图所示 正则表达式部分配置说明: -引用名称:下一个请求要引用的参数名称。如填写session,则可用${session}引用它。 -正则表达式:(

Python正则表达式,这一篇就够了!

三世轮回 提交于 2020-04-02 00:12:45
大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达式的函数。 re模块主要定义了9个常量、12个函数、1个异常,每个常量和函数猪哥 都会通过实际代码案例讲解,让大家能更直观的了解其作用! 注:为避免出现代码格式错乱,猪哥尽量使用代码截图演示哦。 一、re模块简介 聊到Python正则表达式的支持,首先肯定会想到 re 库,这是一个Python处理文本的 标准库 。 标准库 的意思表示这是一个 Python内置模块 ,不需要额外下载,目前Python内置模块大概有300个。可以在这里查看Python所有的内置模块:https://docs.python.org/3/py-modindex.html#cap-r 因为re是内置模块,所以不需要再下载,使用时直接引入即可: import re re模块官方文档:https://docs.python.org/zh-cn/3.8/library/re.html re模块库源码:https://github.com/python/cpython/blob/3.8/Lib/re.py 二、re模块常量 常量即表示不可更改的变量,一般用于做标记。 re模块中有9个常量,常量的值都是int类型! 上图我们可以看到,所有的常量都是在