模式匹配

简介: 模式匹配

匹配操作符(绑定操作符): =~!~
 =~
检验匹配是否成功:$result= $var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回false

!~则相反。

模式中的特殊字符

字符 + :一个或多个相同的字符,如:/ab+/在字符串abbc中匹配的将是abb,而不是ab

字符 *? :它们与+类似,区别在于*匹配0或任意个相同字符,?匹配0个或1个该字符。如:/de*f/匹配dfdefdeeeef等;/de?f/匹配dfdef

字符{}:指定所匹配字符的出现次数。如:/de{1,3}f/匹配def,deefdeeef/de{3,}f/匹配不少于3edf之间;/de{0,3}f/匹配不多于3edf之间。

字符 [][^]
[]
意味着匹配一组字符中的一个,如/a[0123456789]c/将匹配a加数字加c的字符串。^表示除其之外的所有字符,如:/d[^deE]f/匹配d加非deE字符加f的字符串。

匹配任意字母或数字

/[0-9]/表示任意数字,[a-z]表示任意小写字母,[A-Z]表示任意大写字母。

任意大小写字母、数字的表示方法为:/[0-9a-zA-Z]/,-表示字符范围。

转义字符\
如果你想把模式中的特殊字符作为普通字符,须在其前加斜线“\”。如:/\*+/\*即表示字符*,而不是上面提到的一个或多个字符的含义。反斜杠表示为/\//

锚模式

 \A

仅匹配串首

 \Z

仅匹配串尾

\b

匹配一个单词边界,也就是指单词和空格间的位置, 'er\b' 可以匹配"never"  中的 'er',但不能匹配 "verb" 中的 'er'

\B

匹配非单词边界, 'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'

转义字符

描述

范围


\d

任意数字

[0-9]


\D

除数字外的任意字符

[^0-9]


\w

任意单词字符

[_0-9a-zA-Z]


\W

任意非单词字符

[^_0-9a-zA-Z]


\s

空白

[ \r\t\n\f]


\S

非空白

[^ \r\t\n\f]







 

匹配:m/<regexp>/m可省略,匹配成功返回真,否则返回假

替换:s/<pattern>/<replacement>/;

翻译:tr/str1/str2/

str1中的第一个字符替换为str2中的第一个字符,把str1中的第二个字符替换为str2中的第二个字符,依此类推;

 

知识点回顾

匹配:m/<regexp>/

替换:s/<pattern>/<replacement>/;

翻译:tr/str1/str2/

匹配操作符=~!~

模式中的特殊字符。

 

相关文章
|
8月前
正则表达式
这是正则表达式的符号概览:^表示行首,$表示行尾,\A和\z分别代表字符串开始和结束。&quot;.&quot;匹配任何字符,\s是空白字符,\S是非空白字符,\d代表数字,\D是非数字,\w是单词字符,\W相反,\b表示单词边界。;选项i忽略大小写,m使&quot;.&quot;匹配换行,x忽略空格,o限制替换次数。
50 7
|
7月前
正则表达式2
正则表达式
|
8月前
|
JavaScript 前端开发 数据可视化
正则表达式完整指南(下)
正则表达式完整指南(下)
204 0
正则表达式完整指南(下)
|
前端开发 JavaScript Java
正则表达式(极其适合零基础)
正则表达式(极其适合零基础)
162 0
正则表达式(极其适合零基础)
|
机器学习/深度学习 前端开发 JavaScript
一文掌握正则表达式
本文适合对正则不太熟悉,以及想掌握正则表达式的小伙伴阅读~
|
XML 数据安全/隐私保护 数据格式
常用正则表达式
常用正则表达式
|
数据安全/隐私保护
正则表达式总结
正则表达式 定义: 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
1260 0
|
数据安全/隐私保护
正则表达式的应用
var RegExps = { number: /^-?((([1-9]\d*)|0)|([1-9]\d*\.\d+)|(0\.\d*[1-9]\d*))$/, // 数字,整型或浮点型 int: /^((-?[1-9]\d*)|0)$/, // 数字,整形 float: /^-?(([1-9]\d*\.
857 0