正则入门简易

表1.常用的特殊代码

.    匹配除换行符以外的任意字符

\w  匹配字母或数字

\s  匹配任意的空白符

\d  匹配数字

\b  匹配单词的开始或结束

^  匹配字符串的开始

$   匹配字符串的结束

表2.常用的量词

*  重复零次或更多次

+  重复一次或更多次

?  重复零次或一次

{n}  重复n次

{n,}  重复n次或更多次

{n,m}  重复n到m次

表3.常用的反义代码

\W  匹配任意不是字母和数字的字符

\S  匹配任意不是空白符的字符

\D  匹配任意非数字的字符

\B  匹配不是单词开头或结束的位置 

[^x]  匹配除了x以外的任意字符

[^aeiou  匹配除了aeiou这几个字母以外的任意字符

表4.分组语法

(exp)  匹配exp,并捕获文本到自动命名的组里

(?<name>exp)  匹配exp,并捕获文本到名称为name的组里

(?:exp)  匹配exp,不捕获匹配的文本

(?=exp)  匹配exp前面的位置

(?<=exp)  匹配exp后面的位置

(?!exp)  匹配后面跟的不是exp的位置

(?<!exp)  匹配前面不是exp的位置

(?#comment  这种类型的组不对正则表达式的处理产生任何影响,只是为了提供让人阅读注释

表5.懒惰量词

*?  重复任意次,但尽可能少重复

+?  重复1次或更多次,但尽可能少重复

??  重复0次或1次,但尽可能少重复

{n,m}?  重复n到m次,但尽可能少重复  

n,}?  重复n次以上,但尽可能少重复

常用的一些元素

\a  报警字符(打印它的效果是电脑嘀一声)

\b  通常是单词分界位置,但如果在字符类里使用代表退格

\t  制表符,Tab

\r  回车

\v  竖向制表符

\f  换页符

\n  换行符

\e  Escape

\0nn  ASCII代码中八进制代码为nn的字符

\xnn  ASCII代码中十六进制代码为nn的字符

\unnnn  Unicode代码中十六进制代码为nnnn的字符

\cN  ASCII控制字符。比如\cC代表Ctrl+C

\A  字符串开头(类似^,但不受处理多行选项的影响)

\Z  字符串结尾或行尾(不受处理多行选项的影响)

\z  字符串结尾(类似$,但不受处理多行选项的影响)

\G  当前搜索的开头

\p{name}  Unicode中命名为name的字符类,例如\p{IsGreek}

(?>exp)  贪婪子表达式

(?<x>-<y>exp)  平衡组

(?-<y>exp)  平衡组

(?im-nsx:exp)  在子表达式exp中改变处理选项

(?im-nsx)  为表达式后面的部分改变处理选项

(?(exp)yes|no)  把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no

(?(exp)yes)  同上,只是使用空表达式作为no

(?(name)yes|no)  如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no

(?(name)yes)  同上,只是使用空表达式作为no

时间: 2024-10-10 08:55:04

正则入门简易的相关文章

Kivy 中文教程 实例入门 简易画板 (Simple Paint App):0. 项目简介 &amp; 成果展示

本教程咪博士将带领大家学习创建自己的窗口部件 (widget).最终,我们完成的作品是一个简易的画板程序. 当用 kivy 创建应用时,我们需要仔细思考以下 3 个问题: 我们创建的应用需要处理什么数据? 如何可视化地展示这些数据? 用户如何与这些数据交互? 以本教程的简易画板为例,我们希望用户可以用手指在触摸屏上画画,这便是用户与数据交互的方式.为了实现这样的交互,我们需要记录下用户手指的位置,这便是应用需要处理的数据.而在不同位置点之间绘制线条就是数据展示的方式. Kivy 应用中,用户界面

Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)

1. 框架代码 用 PyCharm 新建一个名为 SimplePaintApp 的项目,然后新建一个名为 simple_paint_app.py 的 Python 源文件, 在代码编辑器中,输入以下框架代码 1 from kivy.app import App 2 from kivy.uix.widget import Widget 3 4 5 class MyPaintWidget(Widget): 6 pass 7 8 9 class MyPaintApp(App): 10 def buil

Kivy 中文教程 实例入门 简易画板 (Simple Paint App):2. 实现绘图功能

1. 理解 kivy 坐标系统 上一节中,咪博士带大家实现了画板程序的基础框架,以及一个基本的自定义窗口部件(widget).在上一节的末尾,咪博士留了一道关于 kivy 坐标系统的思考题给大家.通过点击窗口的 4 个角落,观察相应的控制台输出,我们可以推断出 kivy 的坐标原点位于窗口的左下角,x 轴正方向为水平向右,y 轴正方向为竖直向上.这和我们中学数学中常见的平面直角坐标系是一模一样的. 2. 绘制圆点 了解了 kivy 的坐标系统,本节咪博士将教大家实现简易画板的核心功能:绘图. 重

正则入门

正则入门 元字符及反义 重复 分枝 分组 后向引用 零宽断言 贪婪与懒惰 一.元字符及反向引用 元字符(metacharacter),可以理解为匹配的最小单元 \b 匹配一个位置,它的前一个字符和后一个字符不全是\w . 匹配除了换行符以外的任意字符 \d 匹配一位数字 \s 匹配任意的空白符(空格.TAB.换行符.中文全角空格等) \w 匹配字母或数字或下划线或汉字等 ^ 匹配字符串的开始 $ 匹配字符串的结束 反向引用,匹配不是XX的字符 \S 匹配任意不是空白符的字符 \W 匹配任意不是字

文件上传利器SWFUpload入门简易教程

凡做过网站开发的都应该知道表单file的确鸡肋. Ajax解决了不刷新页面提交表单,但是却没有解决文件上传不刷新页面,当然也有其它技术让不刷新页面而提交文件,该技术主要是利用隐藏的iFrame, 较Ajax要麻烦许多,而且其提交方式依然在底层是使用的表单file,这里我们不详谈.而且如果是提交较小的文件,我们能接受,如果提交的文件较大,我 们便要忍受很长的等待时间,而浏览器却没有任何提示,我们也没有办法知道文件上传的进度… 但是现在,网上出现了一个名为SWFUpload的上传组件,该组件利用Fl

俗话:学好正则表达式,走遍天下都没事!最详细的正则入门教程!

简介 正则表达式(regular expression)是可以匹配文本片段的模式.最简单的正则表达式就是普通字符串,可以匹配其自身.比如,正则表达式 'hello' 可以匹配字符串 'hello'.进群:125240963   即可获取数十套PDF哦! re 模块 在 Python 中,我们可以使用内置的 re 模块来使用正则表达式. 私信小编007即可获取数十套PDF哦! 使用 compile 函数将正则表达式的字符串形式编译为一个 Pattern 对象 通过 Pattern 对象提供的一系列

SpringBoot入门简易教程

使用SpringBoot来开发一个简单的restful api网关功能,目标:实现对SpringBoot的简单入门. 1. 创建SpringBoot项目 可以通过spring官网(https://start.spring.io)的来创建springboot项目,或者idea的springboot initialization来创建,或者手工创建一个Maven工程然后引入springboot的dependency. 官网创建注意事项:在serch for dependency输入web,即可完成基

正则入门小随

学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验.下面给出了不少简单的例子,并对它们作了详细的说明. 假设你在一篇英文小说里查找hi,你可以使用正则表达式hi. 这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i.通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种. 不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,h

转--python之正则入门

原文地址 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了. 下图展示了使用正则表达式进行匹配的流程:  正则