正则表达式

Python正则表达式函数

萝らか妹 提交于 2019-12-28 14:28:04
正则表达式函数:正则表达式函数有:re.match()函数、re.search()函数、全局匹配函数、re.sub()函数 match():从头开始匹配 string = "Poythonpty" pat = "p.*?y" pat1 = "y.*" rst = re . match ( pat , string , re . I ) rst1 = re . match ( pat1 , string , re . I ) print ( rst ) print ( rst1 ) 打印结果: search():任意地方匹配,从左到右提取一个结果 string = "Poythonpty" pat = "p.*?y" rst = re . search ( pat , string , re . I ) print ( rst ) 打印结果: 3、全局匹配函数:全局匹配格式:re.compile(正则表达式).findall(数据) string = "PoythonptyohphyjkPdsy" pat = "p.*?y" rst = re . compile ( pat , re . I ) . findall ( string ) print ( rst ) 打印结果: 常见实例 实例1:.com和.cn网址 string = "< a helf='https://www

java中的正则表达式

和自甴很熟 提交于 2019-12-28 11:35:32
java中正则表达式常用的构造元素:    字符 x 字符 x。举例:'a'表示字符a \\ 反斜线字符。 \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') 字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围) [0-9] 0到9的字符都包括 预定义字符类 . 任何字符。我的就是.字符本身,怎么表示呢? \. \d 数字:[0-9] \D 非数字:[^\d]/[^0-9] \w 单词字符:[a-zA-Z_0-9]   \W 非字符[^\w] 边界匹配器 ^ 行的开头 $ 行的结尾 \b 单词边界, 就是不是单词字符的地方。 Greedy 数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过 m 次  运算符   XY    X后跟 Y   X|Y   X 或 Y   (X)   X,作为捕获组 String类中的三个基本操作使用正则:   匹配:matches()   切割: split()   替换: replaceAll() 下边是一些常用的使用 //以空格分割 String str1 = "1 2 3 4

JavaScript常用的正则表达式

六眼飞鱼酱① 提交于 2019-12-28 05:24:07
正则表达式 英文:Regular Expression,在代码中常简写为regex、regexp或RE,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。 什么是正则表达式: 1、正则表达式是由一个字符序列形成的搜索模式 2、当你在文本检索数据时,你可以用搜索模式来描述你要查询的内容 3、正则表达式可以是一个简单的字符 或一个更复杂的模式 4、正则表达式可以用于所有文本搜索和文本替换的操作 方括号 表达式 作用 [abc] 查找方括号之间的任何字符 [^abc] 查找任何不在方括号之间的字符 [0-9] 查找任何从0至9的数字 [a-z] 查找任何从小写a到小写z的字符 [A-Z] 查找任何从大写A到大写Z的字符 [A-z] 查找任何从大写A到小写z的字符 正则表达式的修饰符: 修饰符 简介 i 忽略大小写 g 全局匹配 m 多行匹配 预定义字符集: 字符 作用 .(点) 查找单个字符,出了换行和行结束符 \w 查找单词字符 \W 查找非单词字符 \d 查找数字 \D 查找非数字字符 \s 查找空白字符 \S 查找非空白字符 \b 匹配单词边界 \B 匹配非单词边界 \n 查找换行符 \f 查找换页符 \r 查找回车符 \t 查找制表符 量词 量词 作用 n+ 匹配任何包含至少一个n的字符串 ,多了不限制 n* 匹配任何包含零个或多个n的字符串 (可有可无

python re模块

一世执手 提交于 2019-12-28 04:47:07
re模块   调用方法:import re 查找:   findall : 匹配所有 每一项都是列表中的一个元素 import re ret = re.findall('\d+','sjkhk172按实际花费928') # 正则表达式,带匹配的字符串,flag ret = re.findall('\d','sjkhk172按实际花费928') # 正则表达式,带匹配的字符串,flag print(ret)   search : 只匹配从左到右的第一个,得到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果如果没有匹配到,会返回None,使用group会报错 import reret = re.search('\d+','sjkhk172按实际花费928') print(ret) # 内存地址,这是一个正则匹配的结果 print(ret.group()) # 通过ret.group()获取真正的结果   match 从头开始匹配,相当于search中的正则表达式加上一个^ import re ret = re.match('\d+$','172sjkhk按实际花费928') print(ret) 字符串处理的扩展 : 替换 切割   split 切割 s = 'alex83taibai40egon25' ret = re.split('\d+',s) print

python: re模块

六月ゝ 毕业季﹏ 提交于 2019-12-28 04:46:47
   在 Python中可以使用正则表达式, Python提供 re 模块,包含所有正则表达式的功能。由于Python的字符串本身也用 \ 转义,所以要特别注意:在字符串的前面加上 r 的前缀, 就不用考虑转义的问题了. s1 = 'djioi\ndjj' # \n 表示换行 print(s1) # djioi # djj s2 = r'djioi\ndjj' # 字符串前加个r 就不用考虑转义的问题了. print(s2) # djio    python的re模块提供了很多种有关正则表达式的方法 一 . 匹配 1. findall   语法 : re.findall('正则表达式', '字符串') import re ret = re.findall('\d+', '19874ashfk0248') # 匹配数字,数字的长度至少为1 print(ret) # 返回值为列表 # ['19874', '0248']    当正则表达式里有分组()时, 会优先显示分组里匹配的字符串,无论分组有没有匹配到,没有匹配到则为空字符串' ', 可以在分组里的第一个位置加上 '?:' ,就会取消分组的优先显示特权. ret2 = re.findall('\d+(\w+)', '19874ashfk0248') print(ret2) # ['ashfk0248'] ret3 = re

正则表达式

与世无争的帅哥 提交于 2019-12-28 03:22:45
正则表达式 从在线测试开始 基本用法 用字符组来匹配数字 使用字符组简写形式 匹配任意字符 选择操作 分组 捕获分组 非捕获分组 选项 子模式 量词 边界 使用元字符的字面值 匹配行 更进一步 正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串。 各种程序设计语言,各种编辑器大都支持正则表达式。 从在线测试开始 首先介绍一下 regexpal网站 ,在浏览器地址栏输入:https://www.regexpal.com/,即可看到如下图所示的网站页面。 页面中,上边写正则表达式,下边写要尝试的例子,通过例子进行测试,检验正则表达式是否匹配。 也可以使用 regexr ,在浏览器器地址栏输入:https://regexr.com/,即可进入网站页面,如下图所示: 其功能都类似,进行正则表达式的测试。 类似的网站还有很多,可以通过百度搜索。 基本用法 用字符组来匹配数字 方括号[]中的内容称为字符组,有时也叫字符集,例如:[0-9]表示“匹配0到9范围内的任意数字”,[a-z]表示“匹配任意小写字母”,同样地,[A-Z]表示“匹配任意大写字母”,当然,也可以采用穷举法,[abc123ABC]表示“匹配这里的任意字符”,之外的字符不匹配,如d就不匹配。 [aeiou]匹配小写元音字母 [^aeiou]不匹配小写元音字母 [\u0067]匹配Unicode字符 [\115

正则表达式

邮差的信 提交于 2019-12-28 01:32:34
修饰符 g: 全局匹配 i: 匹配大小写 m 多行收缩 元字符 正则表达式有两种基本字符 :元字符 原义文本字符 原义概念:表示代表本来文本的字符; 元字符:在正则表达式中有特殊意义的字符 .* + ? $ ^ | \ () {} [] \n \d \w \r\ Q \f \b \cX… 字符类[] 一般情况下,一个字符对应一个字符串 特殊:需要配【某类】字符 1:使用[]来构建简单的类 2: 所谓的类是指符合某些特性的对象;一个泛指;而不是特定某个字符 例如[abc] 匹配 a b c 中其中一类就可以 字符类取反 [^] 1:使用 ^ 创建反向类 必须在[^] 内 2:不属于某类 [^abc] 非 a b c 范围类 1:[a-z] 匹配 a-z 任意字符 闭意区间表示包含a z 本身 2:在 [] 主城的类可以连写 [a-zA-Z] 预定义类 作用:匹配常见的字符 [^\r\n] 任意字符 除了回车和换行的 \d \s \S \w 边界匹配的字符 ^ 开头 $ 结尾 \b 单词边界 \B 非单词边界 量词 量词:是匹配一个字符的长度多少? 匹配一个连续出现20次的字符;字符长度为20 ? 出现0次或者1次 一次或者多次 /\d{1,}/ 出现0次或者多次 {n} 一个正则字符出现n次 {n,m} 出现n到m 次 {n,} 至少出现n 次 贪婪模式 非贪婪模式 \d{3,6}

正则表达式学习笔记

廉价感情. 提交于 2019-12-27 20:31:28
1.1 正则表达式,区分大小写 $ echo "This is a test" | sed -n '/this/p' 将不会有输出 ---- $ echo "This is a test" | sed -n '/This/p' This is a test 1.2 正则表达式,不用将单词完整写出 $ echo "The books are expensive" | sed -n '/book/p' The books are expensive 1.3 空格在正则表达式中是一样的,没有其他区别。 “ber 1” 匹配“number 1” $ echo "This is line number 1" | sed -n '/ber 1/p' This is line number 1 1.4 在正则文本模式中不能单独使用 特殊字符 (共计11个) . * []^ $ {} \ + ? | () ".*[]^$\" 属于基础正则表达式BRE “{}+?|()”属于扩展正则表达式 ERE(某些不会支持) 要使用需要使用转义符 通常是 加上反斜杠 \. "\?" "\$" "\\" 斜杠最好也做转义处理 "\/" 1.4.1 “.”匹配除换行符之外的任意单个字符 可以匹配空格,但必须要占一个字符 1.4.2 “[]”字符组 "[ch]at"只匹配 cat、hat。 忽略大小写 $ echo

正则表达式学习笔记

久未见 提交于 2019-12-27 19:33:11
1.1 正则表达式,区分大小写 $ echo "This is a test" | sed -n '/this/p' 将不会有输出 ---- $ echo "This is a test" | sed -n '/This/p' This is a test 1.2 正则表达式,不用将单词完整写出 $ echo "The books are expensive" | sed -n '/book/p' The books are expensive 1.3 空格在正则表达式中是一样的,没有其他区别。 “ber 1” 匹配“number 1” $ echo "This is line number 1" | sed -n '/ber 1/p' This is line number 1 1.4 在正则文本模式中不能单独使用 特殊字符 (共计11个) . * []^ $ {} \ + ? | () ".*[]^$\" 属于基础正则表达式BRE “{}+?|()”属于扩展正则表达式 ERE(某些不会支持) 要使用需要使用转义符 通常是 加上反斜杠 \. "\?" "\$" "\\" 斜杠最好也做转义处理 "\/" 1.4.1 “.”匹配除换行符之外的任意单个字符 可以匹配空格,但必须要占一个字符 1.4.2 “[]”字符组 "[ch]at"只匹配 cat、hat。 忽略大小写 $ echo

正则表达式:是否有AND运算符?

[亡魂溺海] 提交于 2019-12-27 18:40:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 显然,您可以使用 | (管道?)代表 OR ,但是还有一种方法代表 AND 吗? 具体来说,我想匹配包含某个短语的全部但没有特定顺序的文本段落。 #1楼 为什么不使用awk? 使用awk regex AND,或很简单 awk '/WORD1/ && /WORD2/ && /WORD3/' myfile #2楼 AND运算符在RegExp语法中是 隐式 的。 必须使用管道指定OR运算符。 以下RegExp: var re = /ab/; 表示字母 a 和 字母 b 。 它也适用于组: var re = /(co)(de)/; 它表示组 co 和 组 de 。 用OR替换(隐式)AND将需要以下几行: var re = /a|b/; var re = /(co)|(de)/; #3楼 您可以将输出传递到另一个正则表达式。 使用grep,您可以执行以下操作: grep A | grep B #4楼 除了接受的答案 我将为您提供一些实际示例,以使您中的一些人更加清楚。 例如,假设我们有这三行文字: [12/Oct/2015:00:37:29 +0200] // only this + will get selected [12/Oct/2015:00:37:x9 +0200] [12/Oct/2015:00:37:29