正则表达式——特殊符号及其意义

1、非打印字符      
\cx 匹配由x指明的控制字符。 \cM:匹配一个control-M或回车符 x 的值必须为 A-Z 或   a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。
\f 匹配一个换页符,等价于\x0c   \cL    
\n 匹配一个换行符,等价于\x0a   \cJ    
\r 匹配一个回车,等价于\x0d   \cM    
\s 匹配一个任意空白字符,等价于[\f\n\r\t\v] ^\s*\s$:匹配开头和结尾的空白字符  
\S 匹配一个任意非空白字符,等价于[^\f\n\r\t\v]    
\t 匹配一个制表符    
\v 匹配一个垂直制表符    
       
2、特殊字符      
() 标记一个子表达式的开始和结束位置,子表达式可获取供以后使用 (\s*):匹配连续空格 var   str = "abc sb b sa b sc abc sd";
    var reg = /s([abc]+\b)/;
    var arr = str.match(reg);
    //arr = ("sb","sa","sc");
    //临时缓存区$1 = "b",$2 = "a",$3 = "c";
    ()会导致所有匹配存到一个临时缓冲区,缓冲区编号为1-99,每个缓冲区都可以用\n(1<n<99的十进制数)来引用。
    var reg2 = /s([abc]+\b)\s+\1\b/;//匹配s([abc]+\b)\s+b\b的字符串
    var arr2 = str.match(reg);
    //arr2 = ("sb b","sa b");
[] 定义一个匹配的字符串范围 [ab]:匹配a或b号  
{} 一般用来表示匹配的长度 \s{3}:匹配三个空格  
* 匹配前面子表达式零次或多次 a*:匹配连续的一个或多个a  
+ 匹配前面子表达式一次或多次 a+:匹配连续的两个或多个a  
. 匹配换行符以外的所有字符   要匹配换行符用[.\n]
? 匹配前面的子表达式零次或多次,或指明一个非贪婪限定字符   贪婪匹配:正则表达式趋向于匹配最大长度的字符串("aaaaa".match(/a*/);//aaaaa)
    非贪婪匹配:匹配到结果就好了("aaaaa".match(/a*?/);//a)
    ?的四种用法:
    1、匹配前面子表达式0/1次
    2、指明非贪婪限定字符
    *?、+?、??、{n}?、{n,}?、{n,m}?
    3、原文符号,\?
    4、不捕捉模式
    (?……)
\ 将下一个字符标记为特殊字符或原意字符或者向后引用 \n:匹配换行符
    \\:匹配\
    \1:引用第一个缓存区
 
^ 匹配输入字符的开始位置。在[]中使用,表示不接受改字符集合 ^[1-9][0-9]*{3}:不以0开头的四位数字  
$ 匹配输入字符的结尾的位置。如果设置了RegExp对象的Multitle属性,则也匹配‘\n’或‘\r‘ [a-z]*a$:匹配以a结尾的字符串  
| 指明两项之间的一个选择 a|b:匹配a或b  
       
3、限定符      
{n} n是一个非负整数,匹配确定的n次 a{3}:匹配aaa  
{n,} n是一个非负整数,匹配至少n次 a{3,}:匹配aaa,aaaa,aaaaa……  
{n,m} n<m,匹配至少n次至多m次 a{2,3}匹配aa,aaa  
\b 单词分界符 ll\b:匹配hell中的“ll”,但是不匹配hello中的“ll”  
\B 非单词分界符序列 ll\B:不匹配hell中的“ll”,但匹配hello中的“ll”  
\A 总是能够匹配带搜索文本的起始位置    
\Z 标示在未指定任何模式下匹配的字符,通常是字符串的末尾位置,或者是在字符串末尾的换行符之前的位置    
\z 字匹配字符串的末尾,而不考虑任何换行符    
\G 当前匹配的起始位置    
       
4、预定义字符集      
\d 任意一个十进制数字,相当于[0-9]    
\D 任意一个非十进制数字    
\s 任意一个空白字符    
\S 任意一个非空白字符    
\w 任意一个单词字符,相当于[a-zA-Z0-9]    
\W 任意一个非单词字符    
       
5、修饰符      
i 忽略大小写的模式(?i……,?-i……,?i:……) [a-z]i:等同于[a-zA-Z]  
M 多文本模式。即字符串内部有多个换行符时,影响“^”,“$”的匹配    
s 但文本模式。在此模式下,元字符“.”可以匹配换行符。其他模式规则则不能匹配换行符    
X 忽略空白字符    
       
6、捕获分组      
(exp) 匹配exp,并捕获文本到自动命名的组里    
(?<name>exp) 匹配exp,并捕获文本到名为name的分组里    
(?:exp) 匹配exp,不补货匹配的文本,也不给次分组匹配组号    
以下为零宽断言      
(?=exp) 匹配exp前面的位置   "How   are you doing".match(/(?<txt>.+(?=ing))/);txt = "How are you   do";
(?<=exp) 匹配exp后面的位置    
(?=!exp) 匹配前面不是exp的位置    
(?<=!exp) 匹配后面不是exp的位置    
       
别人写的教程 http://blog.csdn.net/baidu_31333625/article/details/72846270    
常用正则表达式 https://c.runoob.com/front-end/854    
       
时间: 2024-10-05 18:13:01

正则表达式——特殊符号及其意义的相关文章

通配符&amp;正则表达式&amp;特殊符号总结

通配符 概念 bash操作环境下的功能. * 代表0个到任意多个字符 ? 代表一定有一个任意字符 [] 代表一定有[]中的一个字符.如g[a,b,c]d表示gad.gbd.gcd [-] 代表一定有编码顺序内的所有字符.如g[0-9]d表示g0d.g1d.g2d....g9d [^] 代表反向选择.如g[^abc]d表示gdd.ged.gfd....gzd.g0d.g1d... 特殊字符 #       注释 \        转义符号 |       管道符 ;        命令分隔符,多条

正则表达式常用符号说明

正则表达式常用符号说明: 1.    .是除换行以外的所有任意符号 2.    \s空白符号 3.    \S除空白符号以外的任意符号 4.    \w字母.数字.下划线 5.    \W 除字母.数字.下划线以外的其他任意符号 6.    \d 数字(0----9) 7.    \D 除数字以外的任意其他符号 8.    ^ 字符串开始 9.    $ 字符串结束 10. * 匹配0到无数次(匹配的是符号前边的字母或者数字等) 11. + 匹配1到无数次(匹配的是符号前边的字母或者数字等) 1

正则表达式全部符号解

正则表达式全部符号解释 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配 "\" 而 "\(" 则匹配 "(". ^ 匹配输入字符串的开始位置.如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置. $ 匹配输入字符串的结束位置.如果设置了Re

JavaScript函数前面加!、+、-、~, ;符号的意义介绍

本篇文章给大家带来的内容是关于JavaScript函数前面加!.+.-.~, ;符号的意义介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. ! 对返回值的真假取反 console.log(!function() { return; }()); // true undefined属于false, console.log(!function() { return "a"; }()); // false 字符串a属于真 +.- 是对返回值进行数学运算 console.lo

正则表达式的符号

echo 'first second third' |awk '{if($1~/first/)print $2} second #正则表达式的运用可以行使像in一样的功能. \:将一些有特定意义的符号正常化,比如\$ ^:以^后面的字符为开头 $:以$前面的字符为结尾 .:代表任意一个字符 [ ...]:括号内的任意一个字符 [^...]:除了括号内的任意一个字符 |:符号的左边和右边的内容的一个 *:重复前面一个字符,0到无穷次 +:重复前面一个字符,1到无穷次 ?:重复前面一个字符一次或0次

正则表达式的符号基本使用说明

***基本正则表达式(可支持grep,sed,awk等shell工具) * 0个或多个在*字符前面的那个普通字符. 匹配任意字符^ 匹配行首,或后面字符是非$ 匹配行尾 []匹配字符集合\ 转义符,屏蔽一个元字符的特殊意义\<\>  精确匹配符号\{n\} 匹配前面字符出现n次\{n,\} 匹配前面字符至少出现n次\{n,m\} 匹配前面字符出现n~m次 注意:符号*前面必须至少有两个字符(当符号*后面没有字符时)或必须*前面至少有一个字符(当符号*后面至少有一个字符时)才有意义      符

正则表达式全部符号解释

字符  描述 \  将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配 "\" 而 "\(" 则匹配 "(". ^  匹配输入字符串的开始位置.如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置. $  匹配输入字符串的结束位置.如果设置了RegExp 对象的

Makefile的编写及四个特殊符号的意义@、[email&#160;protected]、$^、$&lt;

我们先看三段C++程序: 一.line1的源码 line1.h 1 #ifndef _LINE_1_H 2 #define _LINE_1_H 3 void line1_print(const char *strMsg); 4 #endif line1.cpp 1 #include "line1.h" 2 #include <stdio.h> 3 void line1_print(const char *strMsg) 4 { 5 printf("This is

(备忘)正则表达式全部符号解释

字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 "n".'\n' 匹配一个换行符.序列 '\\' 匹配 "\" 而 "\(" 则匹配 "(". ^ 匹配输入字符串的开始位置.如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置. $ 匹配输入字符串的结束位置.如果设置了RegExp 对象的 Mul