正则表达式简明学习(一)

tr:nth-child(odd) > td,
.table-striped tbody > tr:nth-child(odd) > th {
background-color: #f9f9f9;
}
.toc li {
list-style: none;
}
p {
line-height: 1.8em;
}
body>p {
margin-bottom: 1.8em;
}
body>p>img.center,
body>p>a>img.center {
display: block;
margin: 0 auto;
background-color: rgba(128,128,128,0.3);
}
body {
font-family: Helvetica, Tahoma, Arial, STXihei, "华文细黑", "Microsoft YaHei", "微软雅黑", Heiti, "黑体", SimSun, "宋体", sans-serif;
font-size: 1.15em;
font-weight: 100;
// line-height: 1.8em;
color: #2f2f2f;
}
em.cjk_emphasis{
font-style: normal;
font-family: Georgia,"Times New Roman",Times,"楷体","AR PL UKai CN", "NSimSun","Songti SC","SimSun",serif!important;
}
body dt,
body dd {
line-height: 1.35em;
}
body code {
background-color: #D6DBDF;
border: 0;
border-radius: 4px;
color: #2C3E50;
font-size: 90%;
padding: 2px 4px;
}
body h1 {
line-height: 1.6;
}
body h2 {
line-hieght: 1.1;
}
body h3 {
line-height: 1.1;
}

.mark{
border: 0;
background-color: rgba(255,255,0,0.7);
border-radius: 4px;
color: #2C3E50;
font-size: 90%;
padding: 2px 4px;
}
code .mark{
border-radius: 0px;
font-size: initial;
padding: initial;
}
a.attachment{
border: 1px solid #3b83c0;
display: inline-block;
padding: 5px;
margin: 2px;
}
.checkbox .checked{
text-decoration: line-through;
}
.flow-chart, .sequence-diagram{
text-align: center;
}
.plot, .plot-image{
text-align: center;
min-height: 200px;
min-width: 200px;
}

pre {
line-height: initial !important;
word-wrap: break-word;
word-break: break-word;
}

/*
Paraíso (light)
Created by Jan T. Sott (http://github.com/idleberg)
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
*/

/* Paraíso Comment */
.hljs-comment,
.hljs-title {
color: #776e71;
}

/* Paraíso Red */
.hljs-variable,
.hljs-attribute,
.hljs-tag,
.hljs-regexp,
.hljs-name,
.ruby .hljs-constant,
.xml .hljs-tag .hljs-title,
.xml .hljs-pi,
.xml .hljs-doctype,
.html .hljs-doctype,
.css .hljs-id,
.css .hljs-class,
.css .hljs-pseudo {
color: #ef6155;
}

/* Paraíso Orange */
.hljs-number,
.hljs-preprocessor,
.hljs-built_in,
.hljs-literal,
.hljs-params,
.hljs-constant {
color: #f99b15;
}

/* Paraíso Yellow */
.ruby .hljs-class .hljs-title,
.css .hljs-rule .hljs-attribute {
color: #fec418;
}

/* Paraíso Green */
.hljs-string,
.hljs-value,
.hljs-inheritance,
.hljs-header,
.ruby .hljs-symbol,
.xml .hljs-cdata {
color: #48b685;
}

/* Paraíso Aqua */
.css .hljs-hexcolor {
color: #5bc4bf;
}

/* Paraíso Blue */
.hljs-function,
.python .hljs-decorator,
.python .hljs-title,
.ruby .hljs-function .hljs-title,
.ruby .hljs-title .hljs-keyword,
.perl .hljs-sub,
.javascript .hljs-title,
.coffeescript .hljs-title {
color: #06b6ef;
}

/* Paraíso Purple */
.hljs-keyword,
.javascript .hljs-function {
color: #815ba4;
}

.hljs {
display: block;
overflow-x: auto;
background: #e7e9db;
color: #4f424c;
padding: 0.5em;
-webkit-text-size-adjust: none;
}

.coffeescript .javascript,
.javascript .xml,
.tex .hljs-formula,
.xml .javascript,
.xml .vbscript,
.xml .css,
.xml .hljs-cdata {
opacity: 0.5;
}

-->

WAHT

正则表达式 描述 一些规则,而这些规则通过规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式,用来查找和匹配字符串,

hi

这个简单的字符串就是一个正则表达式,精确匹配 hi 这个单词,但我们不仅仅需要找到这个 hi,还要找到一个单独 hi 的单词,或是含有 hi 的字符的一个单词.那么我们就需要 元字符(metacharacter)

元字符

元字符是正则表达式规定的特殊代码,使用一个或是一组规定好的字符代替某些字符,这里的规定好的字符类似的有* ,. ,\b...,而某些字符可能时一个特殊字符,像一个空格‘ ‘,或是一段任意字符.先来一个表,再解释

常用的元字符代码 说明
没有匹配任何字符,代表任意次数出现的模式,用来修饰前导字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

. & *

是不是对 * 的感觉很诡异,什么任意次数,让我们把它和 .放在一起考虑, . 匹配除换行符以外的任意字符,而将.*则匹配不包含换行符的任意长度的字符串

\b

英文中是以空格作为分离单词的标志,而\b则匹配一个这样一个分割单词的位置

来个实例: \bhi\b.*\bword\b

寻找一下在包含 hi 和 word 两个单词的句子,并且还在一行

####\d
匹配数字,没错它只匹配数字

来个实例: 0\d\d-\d\d\d\d\d\d\d\d

以0开头,然后是两个数字,然后是一个连字号“-” ,最后是8个数字

来个实例: \b\w{6}\b

匹配刚好6个字符的单词,知道了码,\w匹配的东西字符,数字,和下划线这些都是组成 单词的必要东西,所以一般用它匹配某个单词,而 {8},就是前导字符的修饰,和  类似,不过是指明了到底匹配了几次

^ $

^ 用来匹配 查找字符串的开头
$ 用来匹配 查找字符串的结尾
这两者和 \b 类似,都用来匹配字符串的某一个位置,而不是实际的一个字符

来个实例: ^\d{5,12}$

匹配长度为 5-12 的数字

字符转义

如果你学过 c或是任何一门语言,他们都有采用特定字符控制输出的功能,而为了输出这些特定字符,就会利用到字符转义, 正则表达式也对 元字符 确定了一个字符转义的规则
加 \,例如 \变为\\,.变为\.,以此类推

重复

这里的重复不是单指一个特定字符的重复,也指不同字符出现的重复

代码/语法 说明
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复

### 来个实例:Windows\d+

匹配Windows后面跟1个或更多数字

字符类

为了控制和表达更多的字符,引入了字符类,他是一个字符集合,使用[,]将其括起来。
在正则表达式中就充当一个元组
例如 [.?!]匹配标点符号(.或?或!),[aeiou]就匹配任何一个英文元音字母.

时间: 2024-07-30 20:37:16

正则表达式简明学习(一)的相关文章

pyqt 正则表达式例子学习

def rex01(self): username=QtCore.QRegExp('[a-zA-Z0-9_]{2,10}') self.names.setValidator(QtGui.QRegExpValidator(username,self)) mainname=QtCore.QRegExp("^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$") self.mains.setValidator(QtGui.QRegExpValidator(mainnam

正则表达式入门学习

\b-元字符,代表单词的开头或结尾,也就是单词的分界处. \bHi\b     下列未进行说明的都是元字符. .  匹配除了换行符以外的任意字符. * 指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配.(不包含换行的字符) \bHi\b.*\bLucy\b \d 匹配一位数字(0或1或2......或9)  0\d\d-\d\d\d\d\d\d\d\d - 不是元字符 ,只匹配它本身. 避免重复 0\d{2}-\d{8}  {2}({8})指前面\d必须连续重复匹配2次(8次). \

正则表达式简明参考

正则表达式简明参考 2014-09-11 前言 我想在网上最出名的正则相关的一篇文章就是<正则表达式30分钟入门教程>了,说实话这篇文章确实是我的正则入门,但是随着使用熟练,冗长的文章已经不能满足我了,在此做个归纳总结,用于快速查阅. 以下语法在Java中有效,大部分应该是通用的. 元字符 元字符,又叫字符集,就是用一些特殊符号表示特定种类的字符或位置. 匹配字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 匹配位置 \b 匹配单

正则表达式语法学习

正则表达式用到的地方很多很广,一般用于验证 此文讲解了正则表达式的语法,以下内容转自网友[丰衣足食]的帖子 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 后向引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配

正则表达式简明笔记

正则表达式描述了一种字符串的匹配模式,可以用来检查一个串是否含有某子串,或是特定字符串是否匹配特定规则. 换句话说就是记录文本规则的一段代码.其目的在于精确地过滤字符,找到想要的字符. 历史:正则表达式的第一个实用应用程序就是 Unix 中的 qed 编辑器 此后便被广泛用在文本搜索和匹配上 结构:正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式 第一小节:元字符  下面是一些常见的元字符 \b  代表单词的开头或结尾,即单词的分界.匹配的是一

JavaScript正则表达式的学习

正则表达式的应用已经相当广泛,之前也多次接触,但是并未真正的系统的学习过,借此机会,好好整理了一下,并加入了es6中关于正则表达式的新语法,希望对大家有点帮助. 一.首先,了解正则表达式的含义,表示方法 正则表达式又称规则表达式,(Regular Expression,在代码中常简写为regex.regexp或RE),对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤

正则表达式-例子学习

正则表达式是一个编程的艺术,很难调试,学习和理解,但强大的功能,仍吸引不少开发者编写正则表达式.让我们探索一下下面10个实际应用中的正则表达式. 1. 用户名正则表达式模式^[a-z0-9_-]{3,15}$^ # 行开始[a-z0-9_-] # 匹配列表中的字符,a-z,0–9,下划线,连字符{3,15} # 长度至少3个字符,最大长度为15$ # 行结束 2. 密码正则表达式模式((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})( # 组开

iOS开发正则表达式的学习

正则表达式笔记 每天的一小步,知道我在不断进步,这就是我每天的小目标. 这是我的第一篇博客,在工作之余,我会努力地留下些许脚印. 我是一名iOS开发者,对于iOS我仅仅只是一个菜鸟,愿意在此处留下我的经验来帮助更多的朋友一起学习,有任何疑问,都欢迎指点和批评. 这是一个正则表达式基础篇,并提供了目前比较常用的一些正则表达式格式. 1.什么是正则表达式 正则表达式提供了一种在指定模式中搜索匹配的模式,这种模式匹配能让你做更有用的事,如验证字段,电话号码,邮箱地址,检查用户输入,执行更高级的文本操作

python基础之 re(正则表达式)模块学习

今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词. import retext = "JGood is a handsome boy, he is cool, clever, and so on..."m = re.match(r"(\w+)\s", text)i