這次帶給大家正規表示式小結(實戰歸納),使用正規表示式實戰的注意事項有哪些,下面就是實戰案例,一起來看一下。
正規表示式就是由普通字元(例如字元 a 到 z)以及特殊字元(稱為元字元)所組成的文字模式。此模式描述在尋找文字主體時待符合的一個或多個字串。正規表示式作為一個模板,將某個字元模式與所搜尋的字串進行比對。
下面小編給大家總結了些關於正規表示式知識點,具體內容如下所示:
1、元字元
# [擁有特殊意義的元字元]
\d -> 匹配一個0-9的數字,相當於[0-9],和它相反的是\D ->匹配一個除了0-9的任意字元
\w -> 匹配一個0-9、a-z、A-Z、_的數字或字元,相當於[0-9a-zA-Z_]
\s -> 匹配一個空白字元(空格、製表符...)
\b -> 匹配一個單字的邊界
\t -> 匹配一個製表符
\n -> 匹配一個換行
. -> 匹配一個除了\n以外的任意字符
^ -> 以某一個元字符開頭
$ -> 以某一個元字符結尾
# \ -> 轉移字符
x|y -> x或y的一個
[xyz] -> x、y、z中的任一個
[^xyz] -> 除了xyz中的任一個字符
[a-z] -> 符合a-z中的任一個字元
[^a-z] -> 符合除了a-z中的任一個字元
() -> 正規中的分組
注意:
1)關於[]
a、[+] ->中括號中出現的所有字元都代表的是本身的意思
b、[12-65] ->這不是12-65而是1/2-6/5三者中的一個
2)關於()
a、分組的作用是改變預設的優先權,例如:/^18|19$/,181、189、119、819、1819...都符合,而不是我們認為的18或19,但改成/^(18|19)$/就是單純的18或19了
b、可以在捕獲大正則匹配的內容同時,把分組匹配的內容也進行捕獲->分組捕獲
c、分組引用,例如:/^(\d)(\w)\2\1$/,這裡的\2是和第二個分組出現一模一樣的內容,\1是和第一個分組出現一模一樣的內容,例如:"0aa0"就符合了
[代表數量的量詞元字元]
* -> 0到多個
+ -> 1到多個
? -> 0到1個
{n} -> 出現n次
{n,} -> 出現n到多次
{n,m} -> 出現n到m次
注意:
1)關於?的幾種情況
a、放在非量詞元字元後面,代表出現0-1次
b、放在量詞元字元後面,代表取消捕獲時候的貪婪性,例如:reg=/\d+/; reg.exec("2015") -> "2015" 但是如果正規這樣寫reg=/\d+?/; reg.exec("2015") -> "2"
c、在分組開頭加?:,代表當前的分組只是匹配不進行捕獲,例如:/^ (?:\d+)$/
d、在分組開頭加?=,正向預查,例如:/^abcdef(?=1|2)$/ 只有"abcdef1"和"abcdef2"才符合
e、在分組開頭加?!,負向預查,例如:/^abcdef(?!1|2)$/ 除了"abcdef1"和"abcdef2"不符合,其他的只要是"abcdef(任何的東西)"都符合
[代表本身意思的元字符]
除了以上的,在字面量方式中,我們出現的其他任意字符代表的都是自己本身的意思
var num=12;
var reg=/^\w"+num+"$/; ->這裡"+num+"不是把變數的值拼接,而這裡的不管是"還是+都是元字元
->對於需要拼接字串和變數的方式我們只能使用實例方式建立正規則
2、修飾符
i -> ignoreCase 忽略字母的大小寫
g -> global 全域匹配(加上g可以解決正則捕獲時候的懶惰性)
m -> multiline 多行匹配
3、專案中常用的正規
1)有效數字的
var reg=/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;
2)信箱的
var reg = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
3)電話的
var reg = /^1\d{10}$/;
4)年齡在18-65之間的
var reg = /^((18|19)|([2-5]\d)|(6[0-5]))$/;
5)中文姓名
var reg = /^[\u4e00-\u9fa5]{2,4}$/;
6)身分證
var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(?:\d{2})(\d)(?:\d|X)$/; //-> 12828(省市县) 1990(年) 12(月) 04(日) 06 1(奇数是男偶数是女) 7(数字或者X)
4、正規的符合
reg.test([string]) ->true就是符合成功 false->符合不成功
5、正規的捕獲
1)reg.exec([string])
-> 首先去配對,符合成功在捕獲,返回的是一個數組; 如果匹配不成功返回的是null;
-> 正則的捕獲即懶惰又貪婪
-> 解決懶惰性在正則的末尾增加全局修飾符g
-> 解決貪婪性在量詞後面加?
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是正規表示式小結(實戰歸納)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于uniapp跨域的相关知识,其中介绍了uniapp和小程序分包的相关问题,每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分,希望对大家有帮助。

Java开发实战:集成七牛云云存储服务实现文件上传引言随着云计算和云存储的发展,越来越多的应用程序需要将文件上传至云端进行存储和管理。云存储服务的优势在于高可靠性、可扩展性和灵活性。本文将介绍如何使用Java语言开发,集成七牛云云存储服务,实现文件上传功能。七牛云简介七牛云是国内领先的云存储服务提供商,其提供了全面的云存储和内容分发服务。用户可以通过七牛云提

MySQL表设计实战:创建一个电商订单表和商品评论表在电商平台的数据库中,订单表和商品评论表是两个非常重要的表格。本文将介绍如何使用MySQL来设计和创建这两个表格,并给出代码示例。一、订单表的设计与创建订单表用于存储用户的购买信息,包括订单号、用户ID、商品ID、购买数量、订单状态等字段。首先,我们需要创建一个名为"order"的表格,使用CREATET

深入学习Elasticsearch查询语法与实战引言:Elasticsearch是一款基于Lucene的开源搜索引擎,主要用于分布式搜索与分析,广泛应用于大规模数据的全文搜索、日志分析、推荐系统等场景。在使用Elasticsearch进行数据查询时,灵活运用查询语法是提高查询效率的关键。本文将深入探讨Elasticsearch查询语法,并结合实际案例给出

Vue实战:日期选择器组件开发引言:日期选择器是在日常开发中经常用到的一个组件,它可以方便地选择日期,并提供各种配置选项。本文将介绍如何使用Vue框架来开发一个简单的日期选择器组件,并提供具体的代码示例。一、需求分析在开始开发之前,我们需要进行需求分析,明确组件的功能和特性。根据常见的日期选择器组件功能,我们需要实现以下几个功能点:基础功能:能够选择日期,并

MySQL表设计实战:创建一个电影信息表和演员表导语:在数据库设计中,表的创建是一个非常关键的环节。本文将以电影信息表和演员表为例,详细介绍如何进行MySQL表的设计和创建,并附上相应的代码示例。一、电影信息表设计和创建电影信息表是用来存储电影的相关信息,包括电影名称、导演、上映时间、电影类型等字段。下面是电影信息表的设计和创建过程,首先我们需要选择合适的字

Vue是一种高效的JavaScript框架,用于构建单页应用程序。它被广泛应用于Web应用程序的开发,包括后台管理系统。如果您正在寻找一种优雅的方式来构建后台管理系统,Vue就是一个不错的选择。在本文中,我们将介绍如何使用Vue来构建一个优雅的后台管理系统。设计你的后台管理系统在开始开发之前,你需要设计你的后台管理系统。这包括设计页面布局、组件、功能和用户界

Git是一款分布式版本控制系统,广泛应用于软件开发领域。在实际的项目开发中,合理利用Git进行团队协作和版本管理,能够极大地提高开发效率和项目质量。本文将分享我在Git开发中的实战经验,并总结一些注意事项和技巧,希望对读者有所启发和帮助。一、团队协作之分支管理在多人协作的项目中,充分利用Git的分支管理功能,能够更好地进行团队协作和版本控制。通常情况下,主干


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器