使用正则表达式的正则表达式语法

作者&投稿:伍婉 (若有异议请与网页底部的电邮联系)
如何使用正则表达式~



var str = "this is my book.";
alert(str.match(/\bis\b/gi)); //结果:is, this中的is并不会被查到

正则表达式 由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式testing中没有包含任何元字符,它可以匹配testing和123testing等字符串,但是不能匹配Testing。 要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。 元字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“
”匹配字符“n”。“\
”匹配一个换行符。序列“\\”匹配“\”而“\(”则匹配“(”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“
”或“”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“
”或“”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“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,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o?”将匹配所有“o”。 .点 匹配除“
”之外的任何单个字符。要匹配包括“
”在内的任何字符,请使用像“(.|
)”的模式。 (pattern) 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“\(”或“\)”。 (?:pattern) 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。 (?=pattern) 正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 (?!pattern) 正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 (?<=pattern) 反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。 (?<!pattern) 反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。 x|y 匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。 [xyz] 字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。 [^xyz] 负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。 [a-z] 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。 [^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。 \b 匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不相匹配“verb”中的“er”。 \B 匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。 \cx 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。 \d 匹配一个数字字符。等价于[0-9]。 \D 匹配一个非数字字符。等价于[^0-9]。 \f 匹配一个换页符。等价于 和\cL。
匹配一个换行符。等价于 和\cJ。 匹配一个回车符。等价于 和\cM。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f
\v]。 \S 匹配任何非空白字符。等价于[^ \f
\v]。 匹配一个制表符。等价于 和\cI。 \v 匹配一个垂直制表符。等价于 和\cK。 \w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。 \W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 \xn 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“ ”匹配“A”。“ 1”则等价于“ &1”。正则表达式中可以使用ASCII编码。
um 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\1”匹配两个连续的相同字符。
标识一个八进制转义值或一个向后引用。如果
之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
m 标识一个八进制转义值或一个向后引用。如果
m之前至少有nm个获得子表达式,则nm为向后引用。如果
m之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则
m将匹配八进制转义值nm。
ml 如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。 \un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。




20个常用的正则表达式
1、模式匹配:正则表达式最基本的应用就是模式匹配,可以用来查找、替换、拆分符合特定模式的文本。例如,在文本编辑器中查找某个特定的单词或短语,或者在日志文件中查找符合特定格式的行。2、数据清洗:在处理大量数据时,常常需要去除不必要的空格、标点符号、换行符等无关紧要的内容。正则表达式可以通过...

求一个正则表达式
^(?:(?<key1>\\w+)\\s*=\\s*'(?<value1>[^']*)'\\s+(?:(?:AND|OR)\\s+(?<key2>\\w+)\\s*=\\s*'(?<value2>[^']*)')*)?该正则表达式分为四个部分:1、以^开头和以$结尾,表示匹配的字符串必须是完整的字符串,不能包含其他字符。2、中间的部分是一个可选的分组,表示可以...

怎么用正则表达式验证密码是否正确呢?
为实现密码长度为8~20个字符,且需同时包含数字、大写字母和小写字母的要求,可以使用正则表达式进行验证。下面是一个简单的正则表达式示例:^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,20} 解释:^:匹配字符串的开始位置 (?=.*[0-9]):正向预查,表示字符串中必须包含至少一个数字...

如何用正则表达式匹配数字?
(\\.\\d+)?表示一个小数点跟多个数字,?表示前面这部分是可选的,这部分匹配一个可选的小数部分;^(\\d)$就是0-9的任意一个数字;^表示以...开头,\\d表示0-9的数字,$表示以...结尾;所以这个就是表示单个数字了。正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为rege...

使用正则表达式的正则表达式语法
正则表达式 由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式testing中没有包含任何元字符,它可以匹配testing和123testing等字符串,但是不...

正则表达式是什么?该怎么用?
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。给定一个正则表达式和另一个字符串,我们可以达到如下的目的:1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”...

什么是正则表达式
正则表达式,又称规则表达式。是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则...

如何用正则表达式匹配指定位置的数字?
匹配正则:(?<=[0-9a-zA-Z]{14})(\\d{4})如果只匹配15位到第18位的数字的话不要使用全局匹配,使用全局匹配会返回多个子表达示结果

正则表达式中有\\ s是什么意思?
一、两种表达方式表达意义的区别:1、\\s代表正则表达式中的一个空白字符(可能是空格、制表符、其他空白)。2、\\\\s代表字符\\和字符s,因为\\在正则中有特殊意义,所有需要转义,写成了\\\\ 。二、表达的作用的区别:1、\\s用于匹配空白字符。2、\\\\s用于匹配字符串中的\\和s,两个字符。

怎样用正则表达式匹配IP地址与域名
匹配完整域名的正则表达式:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\\.?一个IP字串,由四段组成,每一段是0~255的数字,段与段之间用小数点隔开,比如61.139.2.69就是一个合法的IP字串。如果正则表达式写成\\d{1,3}(\\.\\d{1,3}){3}无疑是...

雨湖区13786188176: 如何使用正则表达式 -
钞易洛芬: ^QTP使用正则表达式有2种方式,一种是在“常量值选项”对话框或“参数选项”对话框的“值”框中输入字符串的正则表达式语法,可以定义正则表达式.选中“正则表达式”复选框,以指示QuickTest将该值作为正则表达式处理. 另一种是...

雨湖区13786188176: 如何在oracle中使用正则表达式 -
钞易洛芬: regexp_like 2.regexp_substr 3.regexp_instr 4.regexp_replace 看函数名称大概就能猜到有什么用了. regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单: regexp_substr 函数,和 substr 类似,用...

雨湖区13786188176: 正则表达式?的用法 -
钞易洛芬: 问号?的用法比较多: 一、最常用的就是放在元字符后面的,表示前面的元字符出现零次或一次,例如"a?"等价于"a{0,1}"; 二、另一种情况就是放在量词后面的,与“贪婪型匹配(尽可能多)”相对,表示尽可能少地匹配,如对于字符...

雨湖区13786188176: C++中正则表达式怎么用 -
钞易洛芬: 正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex、regexp、RE、regexps、regexes、regexen.正则表达式是一种文本模式.正则表达式是强大、便捷、高效的文本处理工具.正则表达式本身...

雨湖区13786188176: 如何在C语言中使用正则表达式 -
钞易洛芬: 看到大家讨论这方面的东西,作点贡献聊表各位高手对这个版快的无私奉献 :oops: 如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生.由于它可以极大地简化处理字符串时的复杂 度,因此现在已经在许...

雨湖区13786188176: 如何在sql语句中使用正则表达式 -
钞易洛芬: sqlserver中,主要有regexp_like,regexp_replace,regexp_substr,regexp_instr四个正则表达式函数.1、regexp_like:regexp_like(x,pattern[,match_option]),查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默...

雨湖区13786188176: 求正则表达式语法的详细介绍 -
钞易洛芬: 你是学什么的?@和""属于程序语言的范畴,与正则无关.@表示后面的字符串中转义符不起转义作用""字符串标志 ^、*、$ 1L有,你没看…… ^ 字符串开始* 数量修饰,表示前面的内容可以出现任意次(0次也可以)$ 字符串结束 你那个正则匹配 全是数字的字符串(空字符串也可以) 正则的语法说明网上到处都是 常用的正则表达式也有很多 自己一搜就有了

雨湖区13786188176: java 正则表达式用法 -
钞易洛芬: 先回答楼主的正则表达式吧一个是建表语句格式如下 : create【空格若干】table 【表名和其他信息】 正则表达式如下:create\s+table\s+.+第二个是建索引语句格式如下 : create【空格和字母若干】index【空格和字母下划线等若干】 正则表...

雨湖区13786188176: 正则表达式的语法是什么?
钞易洛芬: 该文本在您的文档中如下:H1Chapter1–IntroductiontoRegularExpressions/H1下面的表达式匹配从开始小于符号()到关闭H1标记的大于符号()之间的所有内容 请采纳我的答案.

雨湖区13786188176: 正则表达式的用法
钞易洛芬: 在典型的搜索和替换操作中,必须提供要查找的确切文字.这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的.使用正则表达式,就可以: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网