正则表达式

Python学习之路(十一):基础知识之re模块

怎甘沉沦 提交于 2020-02-25 12:52:16
1.模块的功能: 为了方便管理程序,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用。 在Python中有许多模块,我们可以导入模块来提高自己的编程效率,也能够更好地实现程序的功能。 2.正则 正则是描述一类字符或者字符串的规则,嵌套在re模块中,如果导入re模块就是使用正则取匹配字符或字符串中的内容。 2.1 字符组 字符组:[] 写在中括号中的内容都可以出现在字符串中 [0-9] 匹配数字 [a-z] 匹配小写字母 ASCII码97-122 [A-Z] 匹配大写字母 ASCII码65-90 [a-zA-Z] 匹配大小写字母 [a-zA-Z0-9] 匹配大小写字母+数字 [a-zA-Z0-9_] 匹配数字字母下划线 2.2 元字符 \w 匹配数字字母下划线 \d 匹配所有的数字 \s 匹配所有的空白符 回车/制表符 \t 匹配一个制表符 \n 匹配回车 \W 匹配非字母数字下划线 \D 匹配非数字 \S 匹配非空白/回车/制表符 [\s\S]、[\d\D]、[\w\W]匹配所有的字符 ^ 匹配一个字符串的开始 $ 匹配一个字符串的结尾 .匹配除换行符以外的所有字符 [^]匹配非字符组内容,例如[^a]就是匹配字符串中不是a的内容

JavaScript 正则表达式语法

 ̄綄美尐妖づ 提交于 2020-02-24 21:18:09
定义   JavaScript定义正则表达式有两种方法。 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i");   它接收两个参数:一个是要匹配的字符串模式,另一个是可选的标志字符串。 2.字面量 var pattern = /[bc]at/i;   正则表达式的匹配模式支持三种标志字符串: g :global,全局搜索模式,该模式将被应用于所有字符串,而并非搜索到第一个匹配项就停止搜索; i :ingore case,忽略字母大小写,即在确定匹配项时忽略模式和字符串大小写; m :multiple lines,多行模式,即在搜索到达一行文本末尾时会继续查找下一行是否有匹配项。   这两种创建正则表达式方法的不同之处在于,正则表达式字面量始终会共享同一个RegExp实例,而使用构造函数创建的每一个新RegExp实例都是新实例。 元字符   元字符是拥有特殊意义的字符,正则表达式的元字符主要有:   ( [ { \ ^ $ | ) ? * + .     在不同的组合中元字符有其不同的意义。 预定义特殊字符    字符类   简单类   一般情况下正则表达式一个字符对应字符串一个字符,但我们可以使用[]来构建一个简单的类,来表示符合某一特征的一类字符。例如:      [abc]可以匹配方括号中的a、b、c或其任意组合的字符。  

匹配中文字符的正则表达式: [/u4e00-/u9fa5]

无人久伴 提交于 2020-02-24 20:08:42
原文: 匹配中文字符的正则表达式: [/u4e00-/u9fa5] 这里是几个主要非英文语系字符范围(google上找到的): 2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。 3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。 4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。 A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。 AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。 F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。 FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。 比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[/u3400-/u9FFF]+$ 理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异 再到msn.co.jp复制了个'お', 也不得行.. 然后把范围扩大到^[/u2E80-/u9FFF]+$, 这样倒是都通过了, 这个应该就是匹配中日韩文字的正则表达式了,

正则表达式的汉字匹配

旧城冷巷雨未停 提交于 2020-02-24 20:04:58
这里是几个主要非英文语系字符范围 2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字、月份,以及日本的假名组合、单位、年号、月份、日期、时间等。 3400~4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字。 4E00~9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字。 A000~A4FFh:彝族文字区,收容中国南方彝族文字和字根。 AC00~D7FFh:韩文拼音组合字区,收容以韩文音符拼成的文字。 F900~FAFFh:中日韩兼容表意文字区,总计收容302个中日韩汉字。 FB00~FFFDh:文字表现形式区,收容组合拉丁文字、希伯来文、阿拉伯文、中日韩直式标点、小符号、半角符号、全角符号等。 比如需要匹配所有中日韩非符号字符,那么正则表达式应该是^[\u3400-\u9FFF]+$ 理论上没错, 可是我到msn.co.ko随便复制了个韩文下来, 发现根本不对, 诡异 再到msn.co.jp复制了个'お', 也不得行.. 然后把范围扩大到^[\u2E80-\u9FFF]+$, 这样倒是都通过了, 这个应该就是匹配中日韩文字的正则表达式了, 包括我們臺灣省還在盲目使用的繁體中文 而关于中文的正则表达式, 应该是^[\u4E00-\u9FFF]+$,

前端常用的正则表达式总结

你离开我真会死。 提交于 2020-02-24 19:32:07
1.需由字母或数字组成 /^[0-9a-zA-Z]+$/ 2.需包含字母、数字、特殊符号中的至少两种 /^(((?=.*[0-9])(?=.*[a-zA-Z])|(?=.*[0-9])(?=.*[^\s0-9a-zA-Z])|(?=.*[a-zA-Z])(?=.*[^\s0-9a-zA-Z]))[^\s]+)$/ 3.需验证手机号格式 /^1[3456789]\d{9}$/ 4.判断字符串只由空格组成 /^[\s ]*$/ 5.需验证身份证号格式 /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ 使用方法举例 以验证由数字或字母组成为例(封装为函数) function validUsername(str) { var reg = /^[0-9a-zA-Z]+$/ if(!reg.test(str)){ return '包含字母或数字以外的其它字符' } return '验证通过' } 来源: https://www.cnblogs.com/Ky-Thompson23/p/12358145.html

理解Javascript的正则表达式

假装没事ソ 提交于 2020-02-24 19:31:47
前言 本文4089字,阅读大约需要12分钟。 总括: 本文基于Javascript的正则表达式,结合笔者个人的思考来对正则表达式的特性进行讲解。 参考文章: A Practical Guide to Regular Expressions (RegEx) In JavaScript , 正则表达式 公众号:「前端进阶学习」,回复「666」,获取一揽子前端技术书籍 事亲以敬,美过三牲。 正文 相信很多人第一次见到正则表达式的第一印象都是懵逼的,对新手而言一个正则表达式就是一串毫无意义的字符串,让人摸不着头脑。但正则表达式是个非常有用的特性,不管是Javascript、PHP、Java还是Python都有正则表达式。俨然正则表达式已经发展成了一门小语言。作为编程语言的一部分,它不想变量,函数,对象这种概念那么容易理解。很多人对于正则表达式的理解都是基于简单的匹配,等到业务中用到完全靠从网上copy来解决问题。不得不说,随着各种开源技术社区的发展,靠copy的确能解决业务中绝大多数的问题,但作为一名有追求的程序员,是绝对不会让自己仅仅依靠 Ctrl C + Ctrl V 来编程的。本文基于Javascript的正则表达式,结合笔者个人的思考和社区内一些优秀正则表达式文章来对正则表达式进行讲解。 Javascrip中的正则表达式使用方法 简单介绍下

JS正则表达式

倖福魔咒の 提交于 2020-02-24 07:00:34
JavaScript 正则表达式: 正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。 搜索模式可用于文本搜索和文本替换。 RegExp对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。 什么是正则表达式? 正则表达式是由一个字符序列形成的搜索模式 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容 正则表达式可以使一饿简单的字符,或一个更复杂的模式 正则表达式可用于所有文本搜索和文本替换的操作` 语法 /正则表达式主体/修饰符(可选) 其中修饰符是可选的。 创建RegExp对象的语法 new RegExp ( pattern , attributes ) ; 参数 参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。 参数 attributes 是一个可选的字符串,包含属性 “g”、“i” 和 “m”,分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。 返回值 返回值 一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么

python下re模块的常用方法

末鹿安然 提交于 2020-02-23 23:00:58
1.re.search(a,b)用于在字符串b中匹配正则表达式a #分组提取字符串 text = "apple 's price is $299, orange 's price is $199" res = re . search ( ".*(\$\d+).*(\$\d+)" , text ) print ( res . groups ( ) ) 输出结果为 (’$299’, ‘$199’) 2.re.findall(a,b)用于在字符串b中匹配正则表达式a,以列表形式返回全部符合规则的字符串 #匹配全部符合规则的字串 text = "apple 's price is $299, orange 's price is $199" res1 = re . findall ( "\$\d+" , text ) print ( res1 ) 输出结果为 [’$299’, ‘$199’] 3.re.sub(a,b,c,d) a被替换字串或正则表达式,b为替换串,c为模式串,d表示替换几个符合规则的被替换字串,默认为全部替换 text = "apple 's price is $299, orange 's price is $199" res2 = re . sub ( "\$\d+" , "$100" , text ) print ( res2 ) 输出结果为 apple 's

linux下正则表达式

有些话、适合烂在心里 提交于 2020-02-23 16:29:12
正则表达式 1. 用 du -sh /* 查看根下所有目录占用的内存是多少 2.lsof -i :22 查看 22 端口 3. 清空文件, cat /dev/null>access_log 清空一个文件 4. 如果在 oldboy/ett 目录下在创建一个目录,那么 /oldbot/ett 的硬链接数是多少,为什么? 2 个,因为子目录下的 .. 是父目录的硬链接 5 检测一个命令是否是内置命令: type 命令名称 Linux 的多用户多任务介绍: 1. 用户的身份是用 UID ( useridentify )和 GID(groupidentify) 来识别的 . 2. 超级用户的 UID=0 , GID=0 ,再生产环境中一般禁止用 root 用户直接 ssh 连接服务器。其他的用户都是虚拟用户,特点是不可以登录 0 代表超级用户, 1-499 代表虚拟用户, 500-65535 代表普通用户 4. 服务运行时需要用户角色的,可以不用登陆,因此,工作中我们要运行 mysql 数据库,可以创建如下用户 group -g 49 useradd -u 49 -s /sbin/nologin -g 49 -s 解释器命令改为不需要用户登录,直接可以进入 id mysql tail -1 /etc/passwd su - mysql chattr -i /etc/passwd /etc