学习笔记 正则表达式

2021-01-19  本文已影响0人  盼夏昼渐凉

2021.01.19 北京海淀 -2℃ 小雪转晴

正则表达式学习笔记

说明:该笔记参考“菜鸟教程”网站正则表达式教程相关文章,以及其他网站中的相关文章,仅供个人学习。
正则表达式 – 教程 | 菜鸟教程 (runoob.com)

一、 了解正则表达式

1.什么是正则表达式

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

2.为什么要用正则表达式

典型的搜索和替换操作要求您提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,至少也会变得很困难。

通过使用正则表达式,可以:

例如,您可能需要搜索整个网站,删除过时的材料,以及替换某些 HTML 格式标记。在这种情况下,可以使用正则表达式来确定在每个文件中是否出现该材料或该 HTML 格式标记。此过程将受影响的文件列表缩小到包含需要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料。最后,可以使用正则表达式来搜索和替换标记。

二、语法

1.简单的语法例举与了解

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。
许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:

上一篇 下一篇

猜你喜欢

热点阅读