正则表达式入门学习

\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次)。

\s  匹配任意的空白符,制表符(Tab),换行符,中文全角空格。

\w 匹配字母或数字或下划线或汉字

\+ 和*类似,匹配重复1次或更多次 而*是重复任意次数(可以为0次)

^ 和$都匹配一个位置 和\b类似

^匹配你要用来查找的字符串的开始,$匹配结尾。 ^\d{5,12}$  匹配5到12位的数字

{5,12} 表示重复次数不少于5次,不能多于12次

例子: \ba\w*\b  以字母a开头的单词,先是某个单词开始处(\b),然后是字母a
,然后是任意数量的字母、数字(\w*),最后是单词结束处(\b)

    \d+  匹配一个或更多连续数字

    \b\w{6}\b 匹配刚好6个字符的单词

  

字符的转义:

如果是想查找元字符本身的话,如查找 .  或者 * 时,就得使用\来取消字符的特殊意义。

\. --.  \* -- *  \\ 
--\  查找本身

例子:  deerchao\.net  匹配deerchao.net   C:\\Windows  匹配
C:\Windows

重复:

*  重复0次或者更多次

+  重复1次或者更多次

? 重复0次 或者1次

{n}  重复n次

{n,}  重复n次或更多

{n,m}  重复n到m 次

例子:Windows\d+ 匹配Windows后面跟着1个或更多数字

^\w+  匹配的一行的第一个单词或整个字符串的第一个单词

字符类

[aeiou] 匹配方括号中的任意一个字符

[.?!]匹配的是.或?或者!

[0-9] 代表含义与\d 完全一致  一位数字

[a-z0-9A-Z] 也等同于\w

\(?0\d{2[) -]?\d{8}  首先是一个转义字符/( 出现0次或1次(?) ,然后是1个0 
后面有2个数字,然后是)空格-中的其中一个,它出现1出或不出现,最后是8个数字

分支条件

|或

0\d{2}-\d{8}|0\d{3}-\d{7} 
匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号码或者是4位区号,7个本地号码。如:010-12345678 
和0376-2233445

\(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}

\d{5}-\d{4}|\d{5}    与      
\d{5}|\d{5}-\d{4} 是完全不同的

匹配分支条件会从左往右的测试每个条件,如果满足某个分支的话,就不会去再管其他条件了。

分组:

用小括号来指定子表达式,也叫分组

(\d{1,3}\.){3}\d{1,3}
这是一个简单的IP地址匹配表达式,\d{1,3}匹配1到3位数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号重复三次,最后再加上
一个一到三位的数字(\d{1,3})

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

反义:

有时需要查找不属于某个能简单定义的字符类的字符,比如像查找除了数字以外,其他任意字符都行的情况,这时需要用到反义。

\W 匹配任意不是字母,数字,下划线,汉字的字符

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

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

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

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

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

例子:

\S+ 匹配不包含 空白字符的字符串

<a[^>]+> 匹配用尖括号括起来的以a开头的字符串

后向引用:用于重复搜索前面某个分组匹配的文本。

\b(\w+)\b\s+\1\b  可以用来匹配重复的单词,像 go go 或者kitty  kitty
。这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符

(\s+),最后是分组1中捕获的内容(也就是前面匹配的那个单词)(\1)

指定子表达式的组名,要指定一个子表达式的组名,要使用这样的语法:(?<Word>\w+)(或者把尖括号换成‘ 也行):

(?‘word‘\w+)),这样就把\w+的组名指定为word了,要反向引用这个分组捕获的内容,你可以使用\k<word>,所以上一个例子也可以写成:\b(?<word>\w+)\b\s+\k<word>\b

正则表达式入门学习,布布扣,bubuko.com

时间: 2024-11-05 19:41:58

正则表达式入门学习的相关文章

Python学习笔记——正则表达式入门

# 本文对正则知识不做详细解释,仅作入门级的正则知识目录. 正则表达式的强大早有耳闻,大一时参加一次选拔考试,题目就是用做个HTML解析器,正则的优势表现得淋漓尽致.题外话不多讲,直接上干货: 1. 元字符: 与之对应的还有反义字符,大部分为小写字母变大写,例如\D表示匹配非数字的字符. 2. 重复(即匹配变长的字符串): 元字符可匹配单一的字符类型,若想匹配长度未知或长度限定的字符串需要在后边加上限定符. 3. 范围与分组: 有时元字符并不能满足匹配字符的需求,这时就需要[]来圈定匹配范围,例

正则表达式入门(c#)

本文是对该教程的学习练习 http://www.jb51.net/tools/zhengze.html 1.\bContent\b static void Main(string[] args) { string str = "Act game - Uncharted3, act Game - God of war"; Regex rex = new Regex(@"\bact\b"); var result = rex.Match(str); if (result

正则表达式入门(3)

本文主要参考编程教室http://crossincode.com/school/lesson/33/ 1. 我们已经了解了正则表达式中的一些特殊符号,如\b.\d...\S等等.这些具有特殊意义的专用字符被称作"元字符".常用的元字符还有: \w - 匹配字母或数字或下划线或汉字(我试验下了,发现3.x版本可以匹配汉字,但2.x版本不可以) \s - 匹配任意的空白符 ^ - 匹配字符串的开始 $ - 匹配字符串的结束 2. \S其实就是\s的反义,任意不是空白符的字符.同理,还有:

MongoDB入门学习(三):MongoDB的增删查改

对于我们这种菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改. 因为MongoDB存储数据都是以文档的模式,所以在操作它的数据时,也是以文档为单位的.那么我们实现增删查改也是以文档为基础,不知道文档是什么的同学可以看看上篇介绍的基本概念. 1.插入文档 向MongoDB集合中插入文档的基本方法是insert: 单个插入 > document = {key : value} > db.collecti

有shi以来最详细的正则表达式入门教程

原文:有shi以来最详细的正则表达式入门教程 本篇文章文字内容较多,但是要学习正则就必须耐心读下去,正则表达式是正则表达式其实并没有想像中的那么困难,但是想要熟练的掌握它,还是需要下功夫勤加练习的.这里讲一些正则表达式的语法和学习方法,大家还要多参考前辈们写的正则表达式,才能达到熟练精通的地步. 一.正则表达式到底是什么东西?                                                  正则表达式,又称正规表示法.常规表示法(英语:Regular Expre

MongoDB入门学习(二):MongoDB的基本概念和数据类型

上一篇讲了MongoDB的安装和管理,其中涉及到了一些概念,数据结构还有一些API的调用,不知道的没关系,其实很简单,这篇会简单介绍一下. 1.文档 文档是MongoDB的核心概念,多个键值对有序的放在一起就是一个文档,文档是MongoDB存储数据最基本的数据结构.对MongoDB都是以文档的形式来操作的,使用了一种类似JSON的二进制BSON数据格式,对API的调用都是传的文档参数.每种编程语言都有标示文档的数据结构,比如java的map,lua的table,python的dict等等,但是都

正则表达式入门教程&amp;&amp;经典Javascript正则表达式----share

前言 例子: ^[email protected]+\\..+$ 这样的代码曾经多次把我自己给吓退过.可能很多人也是被这样的代码给吓跑的吧.继续阅读本文将让你也可以自由应用这样的代码. 正文 教程:正则表达式30分钟入门教程 一个学习正则表达式不错的教程,对正则表达式有兴趣,但不太了解的童鞋可以参考下 以下内容摘自 常用JQuery数字类型验证正则表达式整理  和    经典Javascript正则表达式         [  留个备份 :) ~~  ]     常用JQuery数字类型验证正则

【转】正则表达式入门

首页 | 常用正则表达式 | 正则表达式测试工具 正则表达式30分钟入门教程 http://deerchao.net/tutorials/regex/regex.htm 版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 目录 跳过目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到

PHP入门学习:现在写 PHP,你应该知道这些

本文来源:http://www.zretc.com/technologyDetail/443.html 如果你正在进行PHP入门学习,那么下面这些关于PHP的入门知识你应该知道哦! 首先你应该是在用 PHP 5.3 以上的版本,如果 PHP 版本在这之下,是时候该升级了.如果有条件,最好使用最新的版本. 1.PSR 很多人以为 PSR 只是做一些规范代码风格等无关痛痒的事情,但其实远不止此. PSR 的一系列标准文档由 php-fig (PHP Framework Interop Group)起