正则表达是式

正则表达 regular expression(有规律的 表达 )

测试字符串的某个模式。例如,可以测试字符串是否存在一个电话号码模式或email格式。这称为数据有效性验证

替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字

根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字

------------------------------------------------------------------------------------- 正则表达式语法

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。

该模式描述在查找文字主体时待匹配的一个或多个字符串。

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

创建正则表达式

var re = new RegExp(); //RegExp是一个对象,和Array一样 ,但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去

re =new RegExp("a");//最简单的正则表达式,将匹配字母a

re=new RegExp("a","i");//第二个参数,表示匹配时不分大小写

--------------------------------------------------------------------- 方括号

方括号用于查找某个范围内的字符:

表达式 描述

[abc] 查找方括号之间的任何字符

[^abc] 匹配任何不在方括号之间的字符

[0-9] 匹配任何从 0 至 9 的数字

[a-z] 匹配任何从小写 a 到小写 z 的字符

[A-Z] 匹配任何从大写 A 到大写 Z 的字符

[A-z] 匹配任何从大写 A 到小写 z 的字符

-------------------------------------------------------------------- 小括号

用于匹配分组

/(ab|cd)+|ef/ 匹配字符串"ab" 或者 "cd" 的一次或多次重复. 也可以是字符串 "ef",

---------------------------------------------------------------------

元字符(Metacharacter)是拥有特殊含义的字符:

元字符 描述

. 查找单个字符,除了换行和行结束符

\w [a-zA-Z0-9_] 匹配字母数字和下划线

\W [^a-zA-Z0-9_] 匹配 除 字母数字下划线之外的字符

\d [0-9]  匹配数字

\D [^0-9]  匹配 非 数字字符

\s [\n\r\t\f\x0B]  匹配一个空白字符

\S [^\n\r\t\f\x0B] 匹配一个 非 空白字符

\b 匹配单词边界

\B 匹配 非 单词边界

\0 匹配 NUL 字符

\n 匹配 换行符

\f 匹配 换页符

\r 匹配 回车符

\t 匹配 制表符

\v 匹配 垂直制表符

直接量字符:

\/ 匹配 /

\\ 匹配 \

\. 匹配 .

\* 匹配  *

\+ 匹配 +

\? 匹配 ?

\| 匹配 |

\( 匹配 (

\) 匹配 )

\[ 匹配 [

\] 匹配 ]

\{ 匹配 {

\ } 匹配 }

\’ 匹配 单引号

\” 匹配 双引号

\xxx 查找以八进制数 xxx 规定的字符

\xdd 查找以十六进制数 dd 规定的字符

\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符

------------------------------------------------------------------- 量词

量词  描述

* 匹配零次或多次 例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。

+ 匹配一次或多次 例如,‘zo+‘ 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。 +等价于 {1,}。

? 匹配零次或一次 例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。

{n} 匹配确定的 n 次, n 为非负整数。   例如,‘o{2}‘ 不能匹配 "Bob" 中的 ‘o‘,但是能匹配 "food" 中的两个 o。   {n,}  n 是一个非负整数。至少匹配n 次。      例如,‘o{2,}‘ 不能匹配 "Bob" 中的 ‘o‘,但能匹配 "foooood" 中的所有 o。‘o{1,}‘ 等价于 ‘o+‘。‘o{0,}‘ 则等价于 ‘o*‘。

{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如: "o{1,3}" 将匹配 "fooooood" 中的前三个 o。‘o{0,1}‘ 等价于 ‘o?‘。请注意在逗号和两个数之间不能有空格。

--------------------------------------------------------------------------- 位置限制

^     匹配任何开头为的字符串   例如 ,^n  匹配任何开头为 n 的字符串

$     匹配任何结尾为的字符串  例如 ,n$  匹配任何结尾为 n 的字符串

--------------------------------------------------------------------------------------------------

贪婪量词: 贪婪模式尽可能多的匹配

?  *  +  {n} {n,m} {n,}

惰性量词: 惰性模式尽可能少的匹配

用惰性量词进行匹配时,它首先将第一个字符当成一个匹配,如果成功则退出,如果失败,则测试前两个字符,依些增加,直到遇到合适的匹配为止。贪婪量词与贪婪量词的方法正好相反.  惰性量词仅仅在贪婪量词后面加个"?"而已,如"a+"是贪婪匹配的,"a+?"则是惰性的   ??  *?  +?  {n}?  {n,m}?  {n,}?

var str="abbbbcc";

贪婪: /[ab]+b/     结果:abbbb

惰性: /[ab]+?b/    结果:ab

例子: var str = ‘aabbazbbwwbbaa‘; var arr =str.match(/.*bb/); //aabbazbbwwbb,贪婪的 var arr =str.match(/.*?bb/g); //aabb azbb wwbb 返回一个数组包含3个值,惰性的

--------------------------------------------------------------------------- 方法

方法 描述

exec 检索字符串中指定的值。获取字符串中的第一个与正则表达式的内容,并且将匹配的内容和子匹配的结果存放在返回数组中 test 检索字符串中指定的值。返回 true 或 false。

支持正则表达式的 String 对象的方法

方法 描述   search 检索与正则表达式相匹配的值

match 找到一个或多个正则表达式的匹配,没有找到任何匹配的文本,返回 null,否则,返回一个数组,

replace 替换与正则表达式匹配的子串

split 把字符串分割为字符串数组

-------------------------------------------------------------------------- 修饰符

修饰符 描述 i 忽略大小写 g 全文查找 m 多行查找

--------------------------------------------------------------------------- 正则表达式的() [] {}有不同的意思。

() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。

[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。

{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。

------------------------------------------------------------------------- 字符集

[\u4e00-\u9fa5]  所有汉字

[u00-uff] 所有单字节字符

[^\x00-\xff] 匹配双字节字符(包括汉字在内):

在线 Unicode编码转换

http://tool.chinaz.com/tools/unicode.aspx

\u706b\u661f\u65f6\u4ee3  火星时代

----------------------------------------------------------------------------

常用正则表达式:

身份证:

身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

Email地址:

英文或者数字下划线、减号、 英文或者数字下划线  @ -减号 点 英文或者数字下划线

var reg=/\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

匹配空白行的正则表达式(可以用来删除空白行):\n\s*\r

匹配双字节字符(包括汉字在内):[^\x00-\xff]

只能输入汉字:/^[\u4e00-\u9fa5]{0,}$/

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线 表单验证时很实用):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

时间: 2024-10-03 22:26:25

正则表达是式的相关文章

php 正则表达示中的原子

原子 原子是正则表达示里面的最小单位,原子说白了就是需要匹配的内容.一个成立的正则表达示当中必须最少要有一个原子.大理石平台精度等级 所有可见不可见的字符就是原子 说明:我们见到的空格.回车.换行.0-9.A-Za-z.中文.标点符号.特殊符号全为原子. 在做原子的实例前我们先来讲解一个函数,preg_match: int preg_match ( string $正则 , string $字符串 [, array &$结果] ) 功能:根据$正则变量,匹配$字符串变量.如果存在则返回匹配的个数

正则表达示

这里对正则表达示进行一定程度的总结.为避免太过纠结,这里避开一些 鸡肋 的正则用法. 更多文档参考官方文档 http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html 字符 x 字符 x \\ 反斜线字符 \t 制表符 ('\u0009') \n 新行(换行)符 ('\u000A') \r 回车符 ('\u000D') \f 换页符 ('\u000C') \a 报警 (bell) 符 ('\u0007') \e 转义

对正则表达这个东西还需要多练习啊

正则表达,如果不配合PHP语言来实现其他功能的话,充其量也就是一行字符串.它最基本的功能就是判断,用来判断某些字符是不是存在于一个已被定义的变量中. 所以,可以用它判断的这个特性来作为function的条件. 另外,正则表达式也具有增删改查的功能,但它最主要的功能就是"查". 最后:从某些方面来说,数据库也算是语言吧.

Java正则表达中Greedy Reluctant Possessive 的区别

上一篇文章<编程思想之正则表达式 >中讲了正则表达式的原理.使用方法和常见的正则表达式总结,本文将进一步探讨Java正则表达中Greedy.Reluctant.Possessive三种策略的区别. 从Java的官方文档http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html中我们可以看到,正则表达式表示数量词的符号有三套,分别是Greedy(贪婪的).Reluctant(勉强的)和Possessive(独占的).

Javascript正则构造函数与正则表达字面量&amp;&amp;常用正则表达式

本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达式: 使用new RegExp()构造函数 使用正则表达字面量 先说结果,使用正则表达字面量的效率更高. 下面的示例代码演示了两种可用于创建正则表达式以匹配反斜杠的方法: 1 //正则表达字面量 2 var re = /\\/gm; 3 4 //正则构造函数 5 var reg = new RegE

ruby正则表达

1.Ruby中正则表达式的写法 主要有三种 在//之间,要进行转义 在%r{}内,不用进行转义 Regexp.new()内,不用进行转义 /mm\/dd/,Regexp.new("mm/dd"),%r{mm/dd}三者效果相同,实质都是新建了一个Regexp的类. 2.匹配的两种方法 =~肯定匹配, !~否定匹配.=~表达式返回匹配到的位置索引,失败返回nil,符号左右内容可交换 regexp#match(str),返回MatchData,一个数组,从0开始,还有match.pre_m

通过完善邮箱匹配来一步步学习正则表达

首先,在学习之前先确定一下邮箱的格式,邮箱的一般格式为[email protected],其中xxx可为数字.字母.下划线_,中划线-,点号.,加号+等组成. 在看具体代码之前需要先了解一些基础知识 # []表示匹配字符集中的任意一个字符# \w 表示匹配任何字母数字字符# \s表示任何空格字符# \d表示任何十进制数字# +表示匹配1次或多次前面出现的正则表达# *表示匹配0次或多次前面出现的正则表达# (?:)表示一个匹配不用保存的分组 1.匹配最简单的邮箱格式,如[email protec

JavaScript使用正则表达

JavaScript使用正则表达 正则表达式概述 在前面已经涉及了一些正则表达式的用法,现在将系统地学习正则表达式的语法和 用途.正则表达式主要用于进行字符串的模式匹配,例如判断一个字符串是否符合指定格式等.例如在windows下搜索文件,可以用“*”或者“?”这样的 通配符.在正则表达式的语法中,有更多这样的符号用于表示一个字符串的模式,表7.1列出了所有的特殊符号,它们也被称为元字符. 使用这些元字符,可以表示具有特定模式的字符串,例如: /^\s*$/:匹配一个空行. /\d{2}-\d{

shell正则表达二

shell正则表达 二部分 一.printf命令: 1. 格式化输出.(print  format) 2. 命令格式: printf'打印格式'实际内容 1. 打印格式: 1) \a(警告声音输出) 1) \b(退格键) 1) \n(输出新的一行) 1) \r(帧处于行的开始,即enter键) \t(水平的table键) 1) \v(垂直的table键) 1) \xNN(x为ASCII码十六进制表示:NN为俩位数数字:可转换数字成为字符) 1) %ns(n为数字:s代表string,即多少个字符