正则表达式-1

摘要:
请注意,Unicode正则表达式匹配全宽空白字符。()标记子表达式的开始和结束位置。可以获取子表达式供以后使用。匹配前面的子表达式零或一次,或指示非贪婪限定符。限定符限定符用于指定正则表达式的给定组件必须出现多少次才能满足匹配。它们还使您能够创建出现在单词内、单词开头或单词结尾的正则表达式。正则表达式的定位器是:字符描述^与输入字符串的起始位置匹配。

?-表示匹配0个或者1个字符

eg: name(w)?.txt匹配以下

name1.txt——name2.txt——namex.txt——name.txt——nameM.txt

* -表示匹配0个或者多个字符

eg: name*.txt

name123132.txt——nameasdfd.txt

+ -表示前面的字符必须出现至少一次(多次)

sorr+y  ————sorrry sorrrrrrrrry

非打印字符

字符描述
cx匹配由x指明的控制字符。例如, cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
f匹配一个换页符。等价于 x0c 和 cL。
匹配一个换行符。等价于 x0a 和 cJ。
匹配一个回车符。等价于 x0d 和 cM。
s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ f v]。注意 Unicode 正则表达式会匹配全角空格符。
S匹配任何非空白字符。等价于 [^ f v]。
匹配一个制表符。等价于 x09 和 cI。
v匹配一个垂直制表符。等价于 x0b 和 cK。

特殊字符

有特殊含义的字符,可以理解为 表示任意字符的特殊字符 特殊字符需要先转义

特别字符描述
$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ' ' 或 ' '。要匹配 $ 字符本身,请使用 $。
( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
.匹配除换行符 之外的任何单字符。要匹配 . ,请使用 . 。
[标记一个中括号表达式的开始。要匹配 [,请使用 [。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。' ' 匹配换行符。序列 '\' 匹配 "",而 '(' 则匹配 "("。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
{标记限定符表达式的开始。要匹配 {,请使用 {。
|指明两项之间的一个选择。要匹配 |,请使用 |。

限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。

字符描述
*匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
?匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "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?'。请注意在逗号和两个数之间不能有空格。

如 匹配标号为任意位数的章节标题:

/Chapter [1-9][0-9]*/

最大 为 99

/Chapter [1-9][0-9]?/

/Chapter [1-9]{1,2}/------缺点 会匹配到 0

/Chapter [1-9][0-9]{0,1}/

定位符

定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,描述单词的前或后边界,B 表示非单词边界。

正则表达式的定位符有:

字符描述
^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 或 之后的位置匹配。
$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 或 之前的位置匹配。
匹配一个字边界,即字与空格间的位置。
B非字边界匹配。

免责声明:文章转载自《正则表达式-1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇springmvc项目打war包部署到tomcat访问路径去掉项目名Direct2D教程(四)Path Geometry下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

搜狐微博的解码方式及常用字符集一些知识.

开通了一个月,还没发一篇文章,今天将最近学到的知识做个总结,发表一下,如有错误请各路大神指正,不喜勿喷!!! 搜狐微博msg走的流程(全中文,中英文混合):1、将unicode形式的内容转化成GB18030形式的内容2、将GB18030形式的内容进行utf-8解码 msg走的流程(纯英文):直接进行url解码 普通微博msg走的流程(所有类型):直接进行u...

正则表达式(Rust)

课题 使用正则表达式匹配字符串 使用正则表达式 "d{3}-(d{4})-d{2}" 匹配字符串 "123-4567-89" 返回匹配结果:’"123-4567-89" 以及 "4567" 使用正则表达式替换字符串(模式) 使用正则表达式 "(d+)-(d+)-(d+)" 匹配字符串 "123-4567-89" 使用模式字符串 "$3-$1-$2" 替换...

Mysql中文检索匹配与正则

今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了: SELECT * FROM custom WHERE custom_realname LIKE '%d%' 查询了一下,发现以下说明: (最后修改为: SELECT * FROM custom WHERE custom_realname LIKE BINARY '%d%...

【shell脚本】匹配函数的正则表达式

自己写了一个统计代码中的函数以及函数个数的正则表达式: grep '(' filename.c | grep ')' | grep -v ';' | grep '^[a-z]|[A-Z]' 原理: 1.分析函数的语法特点: 函数实现部分的代码,所在行没有分号,因此,使用grep -v ';'过滤掉有分号的行; 函数实现部分可能有返回值声明,因此,使用gr...

eslint 错误提示

“Missing semicolon.” : “缺少分号.”, “Use the function form of ”use strict”.” : “使用标准化定义function.”, “Unexpected space after ‘-’.” : “在’-'后面不应出现空格.”, “Expected a JSON value.” : “请传入一个js...

SQL 模糊查询

在进行数据库查询时,有完整查询和模糊查询之分。一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如 SELECT * FROM [user] WHERE u_...