<Other> 正则表达式简介

重要

\b--匹配单词的开始或结束,如:\bhello\b匹配hello字符串

\d--匹配数字0-9,可以表示出现的位数,如:0\d{3}-\d{8}表示加上区号的电话号码

\s--匹配任意的空白字符,包括空格,Tab,换行,中文全角空格

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

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

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

\S--匹配不是空白符,如\S+匹配不包含空白符的字符串

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

\u--使用16进制形式匹配Unicode字符,记住[\u4e00-\u9fa5]代表所以汉字字符

一般类

.--表示除了换行符之外的任意字符

^--匹配查找字符串的开头

$--匹配查找字符串的结尾(这两个和\b有点类似,而且没发现区别)

\--由于很多符号被用来做匹配工作了,如果要查找其本身的话就要用"\"来转义,如:\\,\*,\.,\(等

[abcd]--匹配其中出现的字符abcd的任何一个,如:[a-z0-9A-Z]匹配所以大小写字母和数字(注意写法)

[^abcd]--匹配不属于其中出现的字符abcd的其他任意字符

|--分枝条件,而且要注意出现的顺序,会从左到右检测,满足之后就不会去管其他条件

()--用来做子表达式,即是分组,如:(\d{1,3}\.){3}\d{1,3}匹配一个IP地址,更加正确的匹配IP:((2[04]\d|25[0- 5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?);(exp)匹配exp,并捕获文本到自动命名的组里,(? exp)或(?‘name‘exp)匹配exp,并捕获文本到自己命名的组里,取的时候可以用\k。(?:exp)匹配exp,不捕 获匹配的文本,当然也不分配组号。

贪婪匹配

正则表达式默认的是贪婪匹配,即在匹配的情况下尽可能多的匹配。如asbklsdjblkjjabsksdbss用a.*b去匹配的话会得到asbklsdjblkjjabsksdb字符串(尽管前面出现了好多次b也不会匹配,而找最长最多的那个)

懒惰匹配

如上的字符串如果以a.*?b来匹配的话得到的是asb,ab两个字符串,所以限定符都可以在后面加上?来支持懒惰匹配。如:*?,+?,??,{n}?等等都是尽可能少重复

限定类:

*--表示前一位可以出现任意次数(0次也可以),除换行符外

+--表示前一位可以出现任意次数(1次以上),除换行符外

?--表示前一位出现0次或1次

{n}--表示前一位出现n次

{n,}--表示前一位出现n次或更多次

{n,m}--表示前一位出现n次到m次

零宽断言

(?=exp)--零宽度正预测先行断言,如:\b\w+(?=ing\b)匹配以ing结尾的单词,但ing并不包括其中(零宽),dancing 结果是danc

(?<=exp)--零宽度正回顾后发断言,如:(?<=\bre)\w+\b匹配以re开头的单词,但re并不包括其中,reading结果是ading

(?!exp)--零宽度负预测先行断言,如:\b\w*q(?!u)\w*\b匹配任意位置(以*表示)出现q的单词但不接u的字符串

(?

练习:(?<=<(?\w+)>).*(?+\/\k)表示不包含属性的简单html标签内的内容(不包括前缀和尾缀)

注释

(?#comment)--注释,最好启用"忽略模式里的空白符"选项,这样在编写表达式的时候能任意添加空格,tab,换行。如:

   (?<= # 断言要匹配的文本的前缀  <(\w+)> # 查找尖括号括起来的字母或数字(即HTML/XML标签)
        ) # 前缀结束 
         .* # 匹配任意文本
       (?= # 断言要匹配的文本的后缀
     <\/\1> # 查找尖括号括起来的内容:前面是一个"/",后面是先前捕获的标签
       ) # 后缀结束
时间: 2024-11-13 09:34:35

<Other> 正则表达式简介的相关文章

刨根究底正则表达式之一——正则表达式简介

声明: 本系列文章的主要参考书有: <精通正则表达式>英文版及中文版 作者: Jeffrey E·F·Friedl 译者:余晟 电子工业出版社 2012-07 <正则指引>作者:余晟 电子工业出版社 2012-05 <正则表达式必知必会>作者:Ben Forta 译者:杨涛 人民邮电出版社2015-01 <冒号课堂:编程范式与OOP思想>作者:郑晖 电子工业出版社 2009-10 同时,还参考了网上的大量资料,除了少部分资料由于未作大量修改(但基本上也有少量

正则表达式简介

初次接触正则表达式的读者除了感觉它有些繁琐外,还会有一种深不可测的感觉.其实正则表达式就是描述字符排列模式的一种自定义的语法规则,在PHP给我们提供的系统函数中,使用这种模式对字符串进行匹配.查找.替换及分割等操作.它的应用非常广泛.例如,常见的使用正则表达式去验证用户在表单中提交的用户名.密码.E-mail地址.身份证号码及电话号码等格式是否合法:在用户发布文章时,将输入有URL的地方全部加上对应的连接:按所有标点符号计算文章中一共有多少个句子:抓取网页中某种格式的数据等.正则表达式并不是PH

Python正则表达式简介

Python正则表达式简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 就其本质而言,正则表达式(或RE模块)是一种小型的,高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过re模块实现.正则表达式模式被编译成一系列的字节码,然后由C编写的匹配引擎执行. 原文地址:https://www.cnblogs.com/yinzhengjie/p/8542361.html

正则表达式 - 简介

正则表达式 - 简介 除非您以前使用过正则表达式,否则您可能不熟悉一些术语.但是,毫无疑问,您已经使用过不涉及脚本的某些正则表达式概念. 例如,您很可能使用 ? 和 * 通配符来查找硬盘上的文件.? 通配符匹配文件名中的 0 个或 1 个字符,而 * 通配符匹配零个或多个字符.像 data(\w)?.dat 这样的模式将查找下列文件: data.dat data1.dat data2.dat datax.dat dataN.dat 使用 * 字符代替 ? 字符扩大了找到的文件的数量.data*.

JS的正则表达式简介

1.JS的正则表达式 1.1 简介 JS的正则表达式比较简单,总体上只分为两个功能:一个是test--用于匹配字符串是否符合规定的正则表达式规则:另外一个是exec--用于获取匹配到的数据. 1.2 test介绍 我们利用/.../生成正则表达式的对象,例如我们想匹配包含数字0-9可以这样定义: rep = /\d+/ 然后调用test方法即可: rep.test('abcd123vdsd345'); 结果为: 注意默认情况下这个字符串只要包含数字就返回true. 但是如果我们想匹配字符串中必须

Java连载74-字符串常用方法、正则表达式简介

一.字符串相关的常用方法简介? package com.bjpowernode.java_learning; ? public class D74_1_StringCommonMethod { public static void main(String[] args) { //1.转为大写 System.out.println("Abhdugfi".toUpperCase()); //2.转换为小写 System.out.println("AHUJGjhid".t

正则表达式简介及应用

 每次一遇到过滤字符串之类的事情,就傻了....正则很高效,故此做个记录. 除非您以前使用过正则表达式,否则您可能不熟悉此术语.但是,毫无疑问,您已经使用过不涉及脚本的某些正则表达式概念. 示例 例如,您很可能使用 ? 和 * 通配符来查找硬盘上的文件.通配符匹配文件名中的单个字符,而 * 通配符匹配零个或多个字符.像 data?.dat 这样的模式将查找下列文件: data1.dat data2.dat datax.dat dataN.dat 使用 * 字符代替 ? 字符扩大了找到的文件的

PHP正则表达式简介

PHP支持两种风格的正则表达式语法:POSIX和Perl.POSIX风格的正则表达式更容易掌握,但不能安全用于二进制模式,而Perl兼容的正则表达式相对比较复杂. 正则表达式就是有普通字符(如a~z)和特殊字符(称为元字符)组成的字符串模式.使用正则表达式可以完成以下功能:①测试字符串的某个模式:②替换文本:③根据模式匹配从字符串中提取一个子字符串. 一.POSIX风格的正则表达式 1.编写正则表达式 正则表达式是有普通字符和元字符组成的,通过元字符和普通字符的不同组合,可以写出不同意义的正则表

javascript正则表达式简介

javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String和RegExp都定义了使用正则表达式进行强大的模式匹配.文本检索和替换的函数: 正则表达式主要用来验证客户端的输入数据: Ⅰ.创建正则表达式 类似于创建字符串,可以使用new运算符也可以采用字面值: 参数 含义 g 全局匹配 i 忽略大小写 m 多行匹配 下文中的javascript代码是通过 Ecli

正则表达式简介及在C++11中的简单使用

正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex.regexp.RE.regexps.regexes.regexen. 正则表达式是一种文本模式.正则表达式是强大.便捷.高效的文本处理工具.正则表达式本身,加上如同一门袖珍编程语言的通用模式表示法(general pattern notation),赋予使用者描述和分析文本的能力.配合上特定工具提供的额外支持,正则表达式能够添加.删除.分离.叠加.插入和修整各种类型的文本和数据. 完