正则表达式

Python 正则表达式

筅森魡賤 提交于 2020-01-13 00:21:47
Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。 re 模块使 Python 语言拥有全部的正则表达式功能。 compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。 re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。 本章节主要介绍Python中常用的正则表达式处理函数。 re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 函数语法 : re.match(pattern, string, flags=0) 函数参数说明: 参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串。 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志 匹配成功re.match方法返回一个匹配的对象,否则返回None。 我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。 匹配对象方法 描述 group(num=0)

正则表达式括号的使用

拥有回忆 提交于 2020-01-12 20:43:47
正则表达式括号的使用 1 分组 上一章提到过的量词只针对紧邻的字符(组)起作用,例如HTML语言中的标签<table></table>匹配: <table[\s>][\s\S]+?</table> 其中忽略优先量词+?,只对紧邻的字符组[\s\S]起作用,如果需要对之前所有的部分起作用就需要用到圆括号(),写成: (<table[\s>][\s\S])+?</table> 起到了将<table[\s>][\s\S]看做一个整体的作用,即分组。 2 多选结构 括号的第二个作用就是制造出一个多选结构,两个或以上个表达式中都是合法匹配的表达式(适用多种情况时),多选结构的形式是(...|...),用竖线|分割子表达式,这些子表达式也叫多选分支,多选分支可以有好多个,只要有1个分支匹配成功即宣告匹配成功,否则匹配失败,可以类比C语言中的switch-case结构,失败就走default下的代码。 3 Pattern Pattern对应正则表达式对象,如何把一个字符串变成程序可以识别的正则表达式?这就需要用到Pattern的方法compile(): Pattern pattern = Pattern.compile(String regex); regex 是提前编辑好的正则表达式字符串。这样编译好的正则表达式可以为接下来的切分或者匹配操作铺垫。 4 Matcher Matcher可以理解为

Java正则表达式

此生再无相见时 提交于 2020-01-12 09:15:26
一、介绍 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 二、正则表达式的规则 任意一个字符表示匹配任意对应的字符,如a匹配a,7匹配7,-匹配-。 []代表匹配中括号中其中任一个字符,如[abc]匹配a或b或c。 -在中括号里面和外面代表含义不同,如在外时,就匹配-,如果在中括号内[a-b]表示匹配26个小写字母中的任一个;[a-zA-Z]匹配大小写共52个字母中任一个;[0-9]匹配十个数字中任一个。 在中括号里面和外面含义不同,如在外时,就表示开头,如 7[0-9]表示匹配开头是7的,且第二位是任一数字的字符串;如果在中括号里面,表示除了这个字符之外的任意字符(包括数字,特殊字符),如[^abc]表示匹配出去abc之外的其他任一字符。 .表示匹配任意的字符。 \d表示数字。 \D表示非数字。 \s表示由空字符组成,[ \t\n\r\x\f]。 \S表示由非空字符组成,[^\s]。 \w表示字母、数字、下划线,[a-zA-Z0-9_]。 \W表示不是由字母、数字、下划线组成。 ?: 表示出现0次或1次。 +表示出现1次或多次。 *表示出现0次、1次或多次。 {n}表示出现n次。 {n,m}表示出现n~m次。 {n,

java正则表达式-量词

浪子不回头ぞ 提交于 2020-01-12 08:07:57
正则表达式-量词 1概述 所谓量词,可以理解为用来描述某个字符(字符组)重复出现的次数。举个例子,11位数的电话号码,如果不考虑前三位的固定组合,用正则表达式写成: \d\d\d\d\d\d\d\d\d\d\d 其中d重复了11次,十分不方便,所以就引入了量词,上式可以轻松地写成: \d{11} 量词也支持对长度描述范围,形如{m,n} m和n分别是两个整数,相当于数学中的[m,n],例如\d{1,11},表示这个数字字符串的长度最短1个字符,最长11个字符。 【注意】{m,n}的n省略写成{m,} 表示字符出现最少m次,且没有上限。 2 常用量词表示 有几种技术人员常用的量词表示,产生出了相当于量词的简记策略。 3 点号 特殊的元字符 .(点号),点号可以匹配除了换行符n之外的所有字符,包括数字、字母各种符号等。如果需要匹配真正的所有字符的话,可以在设置单行模式匹配的情况下使用点号,或者使用第一章所讲,使用 [\s\S]。 4 匹配优先量词 正则表达式中的量词可以分为几种类别,之前介绍的量词都是可以归为匹配优先量词,其匹配策略为:当不确定是否要匹配时,先尝试匹配,再做后续动作。 因为有匹配优先的存在,对于通配符(除\n)点号就有可能匹配到本不该匹配到的部分(比如字符串的末尾),这时候就应该放弃本次匹配,让表达式的后一部分尝试匹配。这一个过程称为回溯。 5忽略优先量词 相反地

正则表达式

一笑奈何 提交于 2020-01-12 02:17:42
字符类: [abc] a、b或c(简单类) String regex = "[a,b,c]"; //[]代表单个字符 System.out.println("a".matches(regex)); //true System.out.println("b".matches(regex)); //true System.out.println("c".matches(regex)); //true System.out.println("d".matches(regex)); //false System.out.println("1".matches(regex)); //false System.out.println("%".matches(regex)); //false [^abc] 任何字符,除了a、b或c(否定) String regex = "[^abc]"; System.out.println("a".matches(regex)); //false System.out.println("b".matches(regex)); //false System.out.println("c".matches(regex)); //false System.out.println("d".matches(regex)); //true System.out

正则表达式-量词

可紊 提交于 2020-01-11 22:55:40
正则表达式-量词 1概述 所谓量词,可以理解为用来描述某个字符(字符组)重复出现的次数。举个例子,11位数的电话号码,如果不考虑前三位的固定组合,用正则表达式写成: \d\d\d\d\d\d\d\d\d\d\d 其中d重复了11次,十分不方便,所以就引入了量词,上式可以轻松地写成: \d{11} 量词也支持对长度描述范围,形如{m,n} m和n分别是两个整数,相当于数学中的[m,n],例如\d{1,11},表示这个数字字符串的长度最短1个字符,最长11个字符。 【注意】{m,n}的n省略写成{m,} 表示字符出现最少m次,且没有上限。 2 常用量词表示 有几种技术人员常用的量词表示,产生出了相当于量词的简记策略。 3 点号 特殊的元字符 .(点号),点号可以匹配除了换行符n之外的所有字符,包括数字、字母各种符号等。如果需要匹配真正的所有字符的话,可以在设置单行模式匹配的情况下使用点号,或者使用第一章所讲,使用 [\s\S]。 4 匹配优先量词 正则表达式中的量词可以分为几种类别,之前介绍的量词都是可以归为匹配优先量词,其匹配策略为:当不确定是否要匹配时,先尝试匹配,再做后续动作。 因为有匹配优先的存在,对于通配符(除\n)点号就有可能匹配到本不该匹配到的部分(比如字符串的末尾),这时候就应该放弃本次匹配,让表达式的后一部分尝试匹配。这一个过程称为回溯。 5忽略优先量词 相反地

正则表达式匹配任意字符的写法

元气小坏坏 提交于 2020-01-11 14:26:11
原来正则表达式中的".“代表的是除换行以外的任意字符,如果要真正代表任意字符,需要把换行符也加进去,但是经过测试”[.\n]“不生效,可以使用”\s\S"代表,即所有空字符+所有非空字符。 注:为了适用于java程序,上述表达式已把斜杠替换成双斜杠。 package com . hgh . springcloud . feign ; import java . util . regex . Matcher ; import java . util . regex . Pattern ; public class TestYYQAndZFS { public static String Str = "营业" ; public static void main ( String [ ] args ) { Pattern pattern = Pattern . compile ( "[营][业][区]" ) ; String name1 = "营业" ; System . out . println ( "1:" + Pattern . matches ( "/*[营][业]/*" , name1 ) ) ; String name2 = "11营业区" ; Matcher m = pattern . matcher ( name2 ) ; System . out . println

java 正则表达式

ⅰ亾dé卋堺 提交于 2020-01-11 10:34:54
正则表达式 例: import java . util . regex . Matcher ; import java . util . regex . Pattern ; String str = "abdbkfasfhj2142534asfjlkjlfalk" ; Pattern r ; Matcher m ; r = Pattern . compile ( "([0-9]*)" ) ; //提取连续数字 m = r . matcher ( str ) ; //不完全匹配 if ( m . find ( ) ) { System . out . println ( m . group ( 1 ) ) ; break ; } //完全匹配 if ( Pattern . matches ( "([a-z]*)([0-9]*)([a-z]*)" , str ) ) { System . out . println ( "OK!" ) ; } 注意:正则表达式虽然简便好用但是其效率不高,比如匹配一个长度1000多的String类型时,就会导致程序卡死。 规则 1 ^ 匹配行的开头。 2 $ 匹配行的结尾。 3 . 匹配除换行符之外的任何单个字符,使用m选项也可以匹配换行符。 4 [ . . . ] 匹配括号中的任何单个字符。 5 [ ^ . . . ] 匹配括号内的任何单个字符。 6

P 1024 科学计数法

泪湿孤枕 提交于 2020-01-11 01:06:51
转跳点: 🐏 1024 科学计数法 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9] . [0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。 输入格式: 每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。 输出格式: 对每个测试用例,在一行中按普通数字表示法输出 A,并保证所有有效位都被保留,包括末尾的 0。 输入样例 1: +1.23400E-03 输出样例 1: 0.00123400 输入样例 2: -1.2E+10 输出样例 2: -12000000000   这道题可有意思了,我都被逼的去学了一点正则表达式(原本不想用正则的,但写到一半发现太麻烦,就不写了(捂脸),果然我还是个菜菜)。这道题除了输入之外,没有太多难的地方,就是注意正负号,和小数位的保留。   我代码压缩了一下,时间方面不太理想。(为什么要精简代码?可能我脑子有坑吧) 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string

正则表达式

孤街醉人 提交于 2020-01-10 20:20:32
基础 正则表达式的创建 JavaScript有两种方式创建一个正则表达式: var reg=/a/g; var reg=newRegExp("a","g"); 正则中分为两个部分 一个是正则匹配内容 另一个是修饰符部分 修饰符分为 i不区分大小写 g全局从头查找到尾部 m匹配多行 正则表达式的属性和方法 // 属性 var reg=/a/g; console.log(reg.flags) // 修饰符 console.log(reg.source) // 正则匹配的内容 // 方法 var reg=/a/g; var str = "abcdefg" reg.test(str); // true 判断字符串是否满足正则匹配内容 reg.exec(); // 查找字符串中满足正则匹配内容的结果 并且返回一个数组 这个数组只有一个元素 // 几个属性 // groups 群组 // index 查找到的索引下标 // input 当前查找的字符串是什么 // 没用的方法哦 正则表达式在字符串方法中的应用 str.search() 按照正则表达式查找字符串中的内容 返回优先查找到的第一个元素下标 var str="abcdefg"; console.log(str.search(/a/)); // 0 第一个 str.split(); 按照正则表达式匹配内容 切割字符串 并且返回一个数组