正则表达式及工具

前端之家收集整理的这篇文章主要介绍了正则表达式及工具前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言:正则表达式,又称正规表示法、常规表示法。(Regular Expression):正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言(PHPC#、Java、C++、Objective-c、Swift、VB、JavascriptRuby以及Python)都支持利用正则表达式进行字符串操作。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

简单来说:正则表达式可以理解为通过描述某种规则达到某种模式匹配,这种规则称为正则表达式。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);

2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

正则表达式的特点是:

1. 灵活性、逻辑性和功能性非常的强;

2. 可以迅速地用极简单的方式达到字符串的复杂控制。

3. 对于刚接触的人来说,比较晦涩难懂。

正则表达式由一些普通字符和一些元子符(Metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。eg:在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,它可以匹配"testing"和"testing123"等字符串,但是不能匹配"Testing"。(未包含元子符)

一个正则表达式由三部分组成:字符类(描述字符串包含字符特点),数量限定符(字符串中相应字符个数),位置限定符(字符串中字符位置特点)。

规定一些特殊语法表示字符类、数量限定符和位置关系,然后将这些特殊语法和普通字符一起表示一个模式,这就是正则表达式(Regular Expression)

wKiom1dsvejA_AQ1AAJ2pkNbamU259.png

wKioL1dsvengrVAFAAI460QN5fo594.png

wKiom1dsvemxkZgmAAGh2Nh8OK4980.png

wKiom1dsverxyV7aAAF_zF3m6CI716.png

注:注意正则表达式参数用单引号括起来了,因为正则表达式中用到的很多特殊字符在Shell也有特殊 含义(例如\),只有用单引号括起来才能保证这些字符原封不动地传给grep命令,而会被Shell解释掉。

1.grep:文本过滤工具。它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。正则表达式在grep中用来查找符合模式的字符串,grep找的是包含某个模式的行。

egrep相当于grep -E,表示采用Extended正则表达式语法。 grep的正则表达式有BasicExtended两种规范。二者的区别主要在于对上图中特殊字符的解析


对于Basic模式来说,字符?+{}|()应解释为普通字符,要表示上述特殊含义则需要加\转义。

而对于Extend模式来说,字符?+{}|()应解释为特殊字符,要表示普通字面含义则需要加\转义。

wKioL1dswgHBtKi_AABKavXmkCk253.png

wKiom1dswhbRTCu6AAdUMJF86y8425.png

具体例子:

wKioL1dswwCwh54dAABdX-5fMmw526.png

wKioL1dswwCwxrU_AABRXMAUya0064.png

wKiom1dsxM2T12WwAABdBGVxSXs302.png

IP地址的合法性判别

wKioL1dsyCriTW-8AAEIeDMhyTk447.png

最终grep匹配合法IP表达式

wKiom1dszEWAm6DUAADhU0D7cCk236.png

grep 选项测试

wKiom1dszuyjOVuZAAEFDCWRCDQ303.png

wKioL1ds0weBR5uHAADLhI6A9aQ051.png-wh_50

原文链接:https://www.f2er.com/regex/359138.html

猜你在找的正则表达式相关文章