正则表达式(一)-字符匹配攻略

正则表达式是匹配模式,要么匹配字符,要么匹配位置。
然而关于正则如何匹配字符的学习,比较杂乱,元字符太多,看起来没有系统性,不好记。
现整理如下:

两种模糊匹配
字符组
量词
分支结构
案例分析

1、两种模糊匹配

1.1 横向模糊匹配

定义:横向模糊指的是,一个正则可匹配的字符串的长度不是固定的,可以是多种情况的。
表示:{m,n},表示连续出现最少m次,最多n次。
例子:比如正则 /ab{2,5}c/ 表示匹配这样一个字符串:第一个字符是 "a",接下来是 2 到 5 个字符 "b",最后是字符 "c"。

1.2 纵向模糊匹配

定义:纵向模糊指的是,一个正则匹配的字符串,具体到某一位字符时,它可以不是某个确定的字符,可以有多种 可能。
表示:[abc],表示该字符可以是字符"a"、"b"、"c"中的任何一个。
例子:比如 /a[123]b/ 可以匹配如下三种字符串: "a1b"、"a2b"、"a3b"

2、字符组

需要强调的是,虽叫字符组(字符类),但只是其中一个字符。
例如 [abc],表示匹配一个字符,它可以是 "a"、"b"、"c" 之一。

2.1 范围表示法

使用场景:字符组里的字符特别多时,使用范围表示法。比如 [123456abcdefGHIJKLM],可以写成 [1-6a-fG-M]。
表示:用连字符 - 来省略和简写。
注意:因为连字符有特殊用途,那么要匹配 "a"、"-"、"z" 这三者中任意一个字符,
不能写成 [a-z],因为其表示小写字符中的任何一个字符。
可以写成如下的方式:[-az] 或 [az-] 或 [a\-z]。
即要么放在开头,要么放在结尾,要么转义。总之不会让引擎认为是范围表示法就行了。

2.2 排除字符组

纵向模糊匹配,还有一种情形就是,某位字符可以是任何东西,但就不能是 "a"、"b"、"c"。
此时就是排除字符组(反义字符组)的概念。例如 [^abc],表示是一个除 "a"、"b"、"c"之外的任意一个字 符。字符组的第一位放 ^(脱字符),表示求反的概念。

2.3 常见的简写形式

字符组 具体含义
\d 表示[0-9]。表示是一位数字。
记忆方式:其英文是digit(数字)。
\D 表示[^0-9]。表示除数字外的任意字符。
\w 表示 [0-9a-zA-Z_]。表示数字、大小写字母和下划线。
记忆方式:w 是 word 的简写,也称单词字符。
\W 表示 [^0-9a-zA-Z_]。非单词字符。
\s 表示 [ \t\v\n\r\f]。表示空白符,包括空格、水平制表符、垂直制表符、换行符、回车符、换页符。
记忆方式:s 是 space 的首字母,空白符的单词是 white space。
\S 表示 [^ \t\v\n\r\f]。 非空白符。
. 表示 [^\n\r\u2028\u2029]。通配符,表示几乎任意字符。换行符、回车符、行分隔符和段分隔符 除外。
记忆方式:想想省略号 ... 中的每个点,都可以理解成占位符,表示任何类似的东西。

原文地址:https://www.cnblogs.com/xsnow/p/11712462.html

时间: 2024-10-27 19:40:32

正则表达式(一)-字符匹配攻略的相关文章

正则表达式学习(一)-- 字符匹配

文章首发于[sau交流学习社区](https://www.mwcxs.top/page/585.html) 一.前言 正则表达式是匹配模式,要么匹配字符,要么匹配位置. 正则里面的元字符太多了,没有系统性,可以分为: (1)字符匹配攻略 (2)位置匹配攻略 二.字符匹配 包括:两种模糊匹配,字符数组,量词,分支结构. 1.1两种模糊匹配 正则精确匹配乜有意义的,比如正则/saucxs/,只能匹配字符串中的"saucxs"这个子串. var regex = /saucxs/; conso

【正则表达式】——02单个字符匹配

[前言]本节主要讲述匹配单个字符 1. 匹配纯文本 区分大小写 匹配纯文本和搜索功能一致 2. 匹配任意字符——“.” .匹配除了换行符以外的任意字符 注意: [元字符]特殊符号和字符,即所谓的元字符,给予了正则表达式强大的功能和灵活性, 正则表达式是由字符组成的字符串,这些字符可以是文本字符(真正的文本),也可以是元字符(含有特殊含义的字符) 原文地址:https://www.cnblogs.com/testxiaobai/p/10762173.html

js正则表达式验证、匹配数字、匹配字符串、匹配中文、匹配任意字符备忘录

本文转自:91博客 :原文地址:http://www.9191boke.com/235792704.html 正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘录.包括一些常用的验证.匹配数字.匹配字符串.匹配中文.匹配任意字符串. 匹配正则 使用 .test() 方法 let testString = "My test string"; let testRegex = /string/; testRegex.test(testString); 匹配多个模

JavaScript正则表达式模式匹配(1)——基本字符匹配

1 var pattern=/g..gle/; //点符号表示匹配除了换行符外的任意字符 2 var str='g78gle'; 3 alert(pattern.test(str)); 4 5 6 var pattern=/go*gle/; //o* ,表示0个或者多个o 7 var str='goooooooooooogle'; 8 alert(pattern.test(str)); 9 10 var pattern=/go+gle/; //o+,表示一个或者多个o 11 var str='g

LINUX SHELL脚本攻略笔记[速查]

Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp

Emacs安装配置全攻略之一编译安装简单配置

/******************************************************************************************************************************************/ 原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb_driver/article/details/29407717,作者:gqb666 /***************

httpd2.2/2.4全攻略

httpd-2.2/2.4配置用法全攻略  本文介绍以下四部分内容,且看下文.  一.简介 The Apache HTTP Server is a powerful, efficient, and extensible web server. from  http://httpd.apache.org/ httpd is the Apache HyperText Transfer Protocol (HTTP) server program. It is designed to be run a

Perl Unicode全攻略

Perl Unicode全攻略 耐心看完本文,相信你今后在unicode处理上不会再有什么问题. 本文内容适用于perl 5.8及其以上版本. perl internal form 在Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只认识两种编码: Ascii(octets)和utf8(string). utf8 flag 那么perl如何确定一个字符串是oct

fiddler Android下https抓包全攻略

fiddler Android下https抓包全攻略 fiddler的http.https的抓包功能非常强大,可非常便捷得对包进行断点跟踪和回放,但是普通的配置对于像招商银行.支付宝.陌陌这样的APP是抓不到包的,需要一些特殊的配置,本文把fiddler Android下https抓包的详细配置都罗列出来,供大家参考. 一.普通https抓包设置 先对Fiddler进行设置: 勾选“CaptureHTTPS CONNECTs”,接着勾选“Decrypt HTTPS traffic”.同时,由于我