2021.01.19 北京海淀 -2℃ 小雪转晴
正则表达式学习笔记
说明:该笔记参考“菜鸟教程”网站正则表达式教程相关文章,以及其他网站中的相关文章,仅供个人学习。
正则表达式 – 教程 | 菜鸟教程 (runoob.com)
一、 了解正则表达式
1.什么是正则表达式
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
2.为什么要用正则表达式
典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。
通过使用正则表达式,可以:
- 测试字符串内的模式。
例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。 - 替换文本。
可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。 - 基于模式匹配从字符串中提取子字符串。
可以查找文档内或输入域内特定的文本。
例如,您可能需要搜索整个网站,删除过时的材料,以及替换某些 HTML 格式标记。在这种情况下,可以使用正则表达式来确定在每个文件中是否出现该材料或该 HTML 格式标记。此过程将受影响的文件列表缩小到包含需要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料。最后,可以使用正则表达式来搜索和替换标记。
二、语法
1.简单的语法例举与了解
- ^ 为匹配输入字符串的开始位置;
- [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个;
- abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。
eg:用户注册表单时,只允许用户名包括字符、数字、下划线和链接字符(-),并设置用户名的长度,请使用正则表达式来设定。
答:^[a-z0-9_-]{3,15}$
eg:根据以下html代码给出运行结果:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<script>
var str1 = "123abc";
var str2 = "1234abc";
var str3 = "123ac";
var str4 = "12abc";
var patt1 = /^[0-9]+abc$/;
document.write(str1.match(patt1));
document.write("<br>");
document.write(str2.match(patt1));
document.write("<br>");
document.write(str3.match(patt1));
document.write("<br>");
document.write(str4.match(patt1));
document.write("<br>");
</script>
</body>
</html>
运行结果为:
2.普通字符
普通字符包括没有显式指定为元字符的所有可打印和不可打印的字符。这包括大写和小写的字母、所有数字、所有标点符号和一些其他符号。
正则表达式由两种基本字符组成:文本字符和元字符。元字符使正则表达式具有处理能力。
字符 | 描述 |
---|---|
[ABC] | 匹配[...]中的所有字符,例如[^aeiou]匹配字符串"google runoob taobao"中的所有eoua字母。 |
[^ABC] | 匹配除了[...]中的所有字符,例如[^aeiou]匹配字符串"google runoob taobao"中的所有除了eoua字母。 |
A-Z | [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。 |
\s\S | 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。 |
\w | 匹配字母、数字、下划线。等价于[A-Za-z0-9_]。 |
. | 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。 |
3.非打印字符
非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:
字符 | 描述 |
---|---|
4.特殊字符
所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoob 中的 *,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个\ \: runo\ob 匹配 runo*ob。
许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:
网友评论