安全基础 --- 正则表达式

这篇具有很好参考价值的文章主要介绍了安全基础 --- 正则表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

正则表达式是表达文本模式的方法

正则表达式(Regular Expression),简称为正则Regex,是一个用来描述、匹配和操作字符串的工具。

(1)限定字符

限定字符多用于重复匹配次数

常用限定字符:

语法 说明

?

上一项是可选的,最多匹配一次。
* 前一项将被匹配零次或多次。
+ 前一项将被匹配一次或多次。
{N} 上一项完全匹配N次。
{N,} 前一项匹配N次或多次。
{N,M} 前一项至少匹配N次,但不超过M次。

(2)元字符

元字符是表示特殊函数的字符,包括以下这些^ $ . [ ] { } - ? * + ( ) | \\

常用元字符:

语法 说明
. 匹配任何单个字符。
^ 匹配行首的空字符串;也代表不在列表范围内的字符
$ 匹配文本行结尾
\b 匹配单词的开始或结束(单词边缘的空字符串)
\w 匹配字母或数字或下划线或汉字
\s 匹配任意空白符
\d 匹配一个数字字符。等价于[0-9]。
grep -h '.zip' test.txt
在文件中查找包含正则表达式“.zip”的文本行

grep -h '^zip' test.txt
grep -h 'zip$' test.txt
分别在文件中搜索行首和行尾包含“zip”的文本行

(3)反义字符

语法 说明
\B 匹配不是单词开头或结束的位置
\D 匹配一个非数字字符。
\S 匹配任何可见字符。
\W 匹配任何非单词字符。

(4)字符类

方括号之中的字符,表示可以任意匹配其中的一个。

语法 说明
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
grep -h '[bg]zip' test.txt
匹配包含字符串“bzip”或者“gzip”的任意行

grep -h '[^bg]zip' test.txt
匹配不以'b'或'g'开头的行

-在方括号中表示一个字符区域
grep -h '^[A-Z]' test.txt
匹配以大写字母开头的行

grep -h '[-AZ]' test.txt
匹配以连字符,或大写A,或大写Z开头的行

(5)预定义字符类

  • [:alnum:] 字母数字字符。在 ASCII 中,等价于:[A-Za-z0-9]

  • [:word:] [:alnum:]相同, 但增加了下划线字符。

  • [:alpha:] 字母字符。在 ASCII 中,等价于[A-Za-z]

  • [:blank:] 包含空格和 tab 字符。

  • [:cntrl:] ASCII 的控制码。包含了0到31,和127的 ASCII 字符。

  • [:digit:] 数字0到9

  • [:graph:] 可视字符。在 ASCII 中,它包含33到126的字符。

  • [:lower:] 小写字母。

  • [:punct:] 标点符号字符。

  • [:print:] 可打印的字符。等于[:graph:]中的所有字符,再加上空格字符。

  • [:space:] 空白字符,包括空格,tab,回车,换行,vertical tab, 和 form feed.在 ASCII 中, 等价于[\t\r\n\v\f]

  • [:upper:] 大写字母。

  • [:xdigit:] 用来表示十六进制数字的字符。在 ASCII 中,等价于[0-9A-Fa-f]

(6)选择

|表示匹配一系列字符串之中的一个。

echo "AAA" | grep -E 'AAA|BBB'
AAA

echo "BBB" | grep -E 'AAA|BBB'
BBB

'AAA|BBB'表示匹配字符串'AAA'或者是字符串'BBB'

echo "CCC" | grep -E 'AAA|BBB'

grep程序使用-E参数,表示按照正则表达式规则匹配。并且,这个正则表达式放在单引号之中,为的是阻止Shell把|解释为管道操作符。

|可以多个连用,也可以与其他正则规则结合使用。

echo "AAA" | grep -E 'AAA|BBB|CCC'
AAA

grep -Eh '^(bz|gz|zip)' test.txt

附:

  • --:表示范围,如果它不是列表中的第一个或最后一个,也不是列表中某个范围的终点。

  • \<:匹配单词开头的空字符串。

  • \>:匹配单词末尾的空字符串。文章来源地址https://www.toymoban.com/news/detail-608134.html

\f 匹配一个换页符。
\n 匹配一个换行符。
\r 匹配一个回车符。
\t 匹配一个制表符。
\v 匹配一个垂直制表符。

到了这里,关于安全基础 --- 正则表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 正则表达式 基础

    Tips: 字符串方法match()返回根据正则表达式匹配到的结果 ^ 以...开头 $ 以...结尾 + 号,匹配前面的字符1 ~ n次 * 号,匹配前面的字符0 ~ n次 ? 号,匹配前面的字符0 ~ 1次 {n,} ,匹配前面的字符至少n次 {n,m} ,匹配前面的字符n ~ m次 [abc] 匹配[]中的所有字符 [^abc] 匹配除去[^]中的所

    2024年02月04日
    浏览(50)
  • Python正则表达式提取文本中的IP地址

    Python正则表达式提取文本中的IP地址 在Python中,使用正则表达式可以方便地从文本中抽取符合规则的字符串。其中,IP地址是一个常见的需要抽取的内容之一。IP地址通常由四段数字组成,每段数字的取值范围是0~255。下面将演示如何在Python中使用正则表达式抽取文本中的IP地

    2024年02月16日
    浏览(63)
  • JavaScript正则表达式基础

    创建正则表达式,一般有两种写法 .test(\\\'需要验证的字符\\\'),正则的方法用来验证正则的匹配结果true or false 修饰符 写法:/正则/ 修饰符 示例:/abc/i (匹配字符串abc并且不区分大小) i:执行对大小写不敏感的匹配(不区分字母的大小写) g:执行全局匹配(查找所有匹配而非在

    2024年02月09日
    浏览(50)
  • Python爬虫基础之正则表达式

    目录 一、什么是正则表达式? 二、re.compile()编译函数 三、group()获取匹配结果函数 四、常用匹配规则 4.1匹配单个字符 4.2匹配前字符次数 4.3匹配原生字符串 4.4匹配字符串开头和结尾 4.5分组匹配 五、re.match()开头匹配函数 六、re.search()全文搜索函数 七、re.findall()查找所有函数

    2024年02月10日
    浏览(49)
  • javaScript基础语法之正则表达式

    表达式 描述 [0-9] 查找任何从 0 至 9 的数字。例如,匹配: \\\'111\\\' ,不匹配:\\\'eee\\\' [abc] 查找方括号之间的任何字符。例如,/[123]/ 匹配 \\\"1234567\\\" 中的 \\\"123\\\",\\\"1\\\" 中的 \\\"1\\\"。但是不匹配 \\\"4567890\\\"。 [^abc] 查找任何不在方括号之间的字符。例如,/[^123]/ 匹配 \\\"4567890\\\" 中的 \\\"4567890\\\"。但是不匹

    2024年02月09日
    浏览(51)
  • Shell编程基础(十三)正则表达式

    格式:^ 表达式 $ 在不同的场景下,定义是一样,但使用要按照具体的命令去调用,中间的表达式都是通用的 普通元字符 所谓元数据,就是描述数据的数据,在这里就是描述正则的数据 ^ 表示正则从字符串 整行 起始位置匹配 ^abc 匹配 以abc开始的字符串 $ 表示正则一直匹配到

    2024年02月14日
    浏览(40)
  • 【C#基础】C# 正则表达式

    序号 系列文章 7 【C#基础】C# 常用数据结构 8 【C#基础】C# 面向对象编程 9 【C# 基础】C# 异常处理操作 🌼 hello大家好啊,我是writer桑。前面一章已经学习了 C# 中的异常处理操作,那本章就开始学习 C# 程序中正则表达式的应用。关于正则表达式网上已经有很多现成的学习资源

    2024年02月03日
    浏览(40)
  • MFC使用正则表达式基础步骤

    ①头文件包含 #include ②明确声明正则表达式 更多正则表达式可查阅:https://blog.csdn.net/Next_Second/article/details/126696589 ③CString 转string ④进行匹配 完整函数

    2024年02月16日
    浏览(41)
  • java基础知识——23.正则表达式

    这篇文章我们简略的讲一下java的正则表达式 目录 1.正则表达式概述 2.正则表达式的简单匹配规则 3.正则表达式的复杂匹配规则 4.正则表达式的分组匹配规则 5.正则表达式的非贪婪匹配 6.使用正则表达式进行搜索和替换 首先,我们需要明确一个观点,什么是正则表达式? 正则

    2024年02月01日
    浏览(59)
  • 【Java 基础篇】Java 正则表达式

    正则表达式是一种强大的文本模式匹配工具,它可以帮助我们在文本中查找、替换和提取特定模式的内容。Java 提供了丰富的正则表达式支持,通过 java.util.regex 包中的类和方法,我们可以在 Java 程序中使用正则表达式进行字符串处理。 本篇博客将介绍 Java 正则表达式的基本

    2024年02月09日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包