正则表达式

python-正则表达式

好久不见. 提交于 2020-03-01 11:54:42
1.匹配指定字符 # [] 原子表,存储表达式、字符集合 pattern = re.compile('[a]') # 参数写成a-c 则是匹配以abc任意一个字母,a-z匹配任意一个小写字母,写成[a][b]则是匹配ab # 匹配一个汉字[\u4e00-\u9fa5] pattern1 = re.compile('[b]') result = pattern.match('baa') result1 = pattern1.match('baa') print(result) # 输出结果:None print(result1) # 输出结果:<re.Match object; span=(0, 1), match='b'> 2.“^” # “^” 在原子表外,表示包含;在原子表内,表示除了什么之外 pattern = re.compile('^a[a-zA-Z0-9]') # 判断是不是已一个a和一个字母或者数字开头 result = pattern.match("a0a") print(result) # # 输出 <re.Match object; span=(0, 2), match='a0'> # 如果以字母或者数字开头则返回None pattern = re.compile('[^a-zA-Z0-9]') result = pattern.match('a.a')

正则表达式与sed工具

╄→尐↘猪︶ㄣ 提交于 2020-03-01 05:04:07
1、正则表达式 通俗来讲,正则表达式是一种字符串的匹配方式,比如使用星号“ * ”来匹配任意的字符等。正则表达式实际上是一个匹配模板,当 bash 执行这个正则表达式时,就会将所有的输入数据与匹配模板匹配,匹配不成功的数据将会被过滤掉。 表 1. 常用的元字符 字符 含义 举例 . 匹配除换行符以外的任意字符 \bhi\b.*\bLucy\b \w 匹配字母或数字或下划线或汉字 \bhe\w \s 匹配任意的空白符 ( 包括空格制表符换页符 ) \b 匹配单词的开始或结束 \bhi\b ^ 匹配字符串的开始 ^g.*d$ $ 匹配字符串的结束 grep ‘d$’ test.ini 表 2. 常用的限定符 字符 含义 举例 * 重复零次或更多次 grep ‘o*’tet.ini + 重复一次或更多次 [0-9]+ 匹配 1 个或更多的数字 ? 重复零次或一次 {n} 重复 n 次 ^9{2}$ {n,} 重复 n 次或更多次 {n,m} 重复 n 到 m 次 表 3. 常用的反义代码 / 语法 说明 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了 x 以外的任意字符 [^aeiou] 匹配除了 aeiou 这几个字母以外的任意字符 表 4. 扩展正则表达式 字符 含义 举例 { n,m }

PHP学习历程之——正则表达式

女生的网名这么多〃 提交于 2020-03-01 03:43:10
首先搞清楚3个问题: 为什么要用正则表达式? 什么是正则表达式? 如何使用正则表达式? 正则表达式的适用场合: 正则表达式最初起源数学领域的一些研究,1956年数学家Stephen Kleene在论文《神经网络事件的表示法》中首次提出了正则表达式的概念。数年之后,计算机领域借鉴那些研究工作的成果和思路,由UNIX的主要创始人Ken Thompson开始讲正则表达式应用于计算搜素算法,至此正则表达式从UNIX领域开始被广泛地普及开来。 替换文本或者代码中的某些字符,最常见的方法就是使用编辑软件中的查找和替换功能,但是替换工作很大的时候,这样的做法就不足以高效的完成要求。这时候就需要借助编程来实现,这时候就使用正则表达式来完成几乎所有的文本查找和替换工作。 正则表达式的强大功能来源于它可以指定抽象模式校验不同的字符序列,3种基本抽象模式: 可出现的字符集(例如,字母、数字和下划线) 可选择性的集合(例如,”com“、”net“或”org“) 可重复的序列(例如,至少一个但是不多于8个的字母符号) 将这三种模式按照一定的方式组合就可以 校验电子邮件的地址是否合法;校验用户输入的日期格式是否正确;校验用户输入的身份证号码格式是否正确等 (当然可以用php自定义算法实现) 。 正则表达式的概念 正则表达式是由一些普通的字符和一些元字符(metacharacters)共同组成的

Java正则表达式字符串匹配示例

我的未来我决定 提交于 2020-02-29 23:17:08
一位以前的同事在群里面突然发了个需求,要通过正则表达式来取值。给我发过来一张图, 从图中可以出,需求是,通过下面的正则表达式,取出红色框所标示的内容 开始理解错误,我以为是要取出中间的那些内容,不包括"[标题BEGIN]"和“[标题END]”,于是写了下面的代码: private static void getStr(){ String str="[标题BEGIN]<#list>[@cms_chanel id=70]<li class=\"current\"></li>[/@cms_chanel]</#list>[标题END]"; Pattern p =Pattern.compile("\\[标题BEGIN\\](.*)\\[标题END\\]"); Matcher m =p.matcher(str); ArrayList<String> matches= new ArrayList<String>(); while(m.find()) { matches.add(m.group(1)); } for(String s: matches) { System.out.println("匹配结果:"+s); } } 回过头来一看需求,发现不对,于是再修改,主要是针对pattern进行修改 过程如下(按顺序); 1. Pattern p =Pattern.compile("(\\

怎么在JMeter中的实现关联

耗尽温柔 提交于 2020-02-29 22:50:01
我们一直用的phpwind这个系统做为演示系统, 如果没有配置好的同学, 请快速配置之后接着往下看哦. phpwind发贴时由于随着登陆用户的改变, verifycode是动态变化的, 因此需要用到关联. LoadRunner的关联函数是reg_save_param, Jmeter的关联则是利用后置处理器来完成. 在需要查找的请求后面添加后置处理器: 模板: 正则表达式可以设置多个 模板进行匹配,在此只可指定运用哪个模板, 模板自动编号, $1$表示第一个模板, 以此类推, $0$指全文匹配 匹配数字: 在匹配时往往会出现多个值匹配的情况,如果匹配数为0则代表随机取匹配值. 不同模板可能会匹配一组值, 那么可以匹配数字来确定取这一组值中的哪一个. 负数取所有值, 可以与For Each Controller一起使用来遍历. 正则表达式的验证可以用matchtracer来验证编写是否正确, 可以通过http://www.cr173.com/soft/5443.html下载绿色破解版. 以下是使用界面: 正则表达式匹配正确, 就可以开始引用了. 运行脚本, 查看结果树, 或者从页面去检查贴子是否发成功. 欧啦, 通过后置处理器添加关联就成功咯. 整理:千锋软件测试 来源: 51CTO 作者: 小小前锋 链接: https://blog.51cto.com/13662419

【JAVA】找出文本中指定规律的字符,并替换其中某些字符

心不动则不痛 提交于 2020-02-29 20:57:02
##这代码有什么用? 我能帮您从一个文本文件中找出所有 指定规律的字符,并且还能替换结果中的某个指定字符,最后再打印出来。 这里的“规律”是指 匹配正则表达式。 ##怎么实现的? 文本文件的读取是通过BufferedReader和FileReader来实现: BufferedReader br = new BufferedReader(new FileReader("E:/kk.txt")); String s = null; while((s = br.readLine()) != null) { System.out.println(s); } 找出指定规律的字符是通过Pattern和Matcher来实现的,它们的作用是实现正则表达式: while((s = br.readLine()) != null) { Pattern p = Pattern.compile("\\d+[.]?\\d+M");//匹配模式 Matcher m = p.matcher(s);//s为被匹配的字符串,该方法参数类型为CharSequence,它是String的父类 if(m.find()){//Matcher.find为是否匹配成功;Matcher.group()为返回匹配到的结果 System.out.println(m.group().replaceAll("M", "+")); } }

C#正则表达式小结

痞子三分冷 提交于 2020-02-29 17:08:22
只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。 只能输入非零的负整数:"^\-[1-9][]0-9"*$。 只能输入长度为3的字符:"^.{3}$"。 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"

C#正则表达式小结

旧城冷巷雨未停 提交于 2020-02-29 17:08:04
只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。 只能输入非零的负整数:"^\-[1-9][]0-9"*$。 只能输入长度为3的字符:"^.{3}$"。 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"

C#正则表达式小结

泄露秘密 提交于 2020-02-29 17:07:51
以下是一些常用的正则表达式,觉得实用就收藏一下吧。 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。 只能输入非零的负整数:"^\-[1-9][]0-9"*$。 只能输入长度为3的字符:"^.{3}$"。 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。 只能输入汉字

c#正则表达式帮助

混江龙づ霸主 提交于 2020-02-29 17:07:11
符号解释、字符描述: \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 {n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 {n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于