hackthebox 学院 -LINUX 基础知识-LINUX FUNDAMENTALS 模块08-常用表达-Regular Expressions

常用表达-Regular Expressions

正则表达式 ( RegEx) 是一种用于搜索文本和文件中模式的表达语言艺术。它们可用于查找和替换文本、分析数据、验证输入、执行搜索等。简单来说,它们是可用于分析和操作字符串的过滤标准。它们可用于各种编程语言和程序,并以多种不同的方式和功能使用。

正则表达式是形成搜索模式的字母和符号序列。此外,可以使用称为元字符的模式创建正则表达式。元字符是定义搜索模式但没有字面意义的符号。我们可以在grepse​​​d或其他工具中使用它。通常,正则表达式在 Web 应用程序中实现,用于验证用户输入。


分组

除此之外,正则表达式使我们能够对所需的搜索模式进行分组。基本上,正则表达式遵循三个不同的概念,通过三个不同的括号来区分:

分组运算符

运营商描述
1(a)圆括号用于对正则表达式的各个部分进行分组。在括号内,您可以定义应一起处理的更多模式。
2[a-z]方括号用于定义字符类。在括号内,您可以指定要搜索的字符列表。
3{1,10}大括号用于定义量词。在括号内,您可以指定一个数字或范围来指示应重复先前模式的频率。
4|也称为 OR 运算符,当两个表达式之一匹配时显示结果
5.*也称为 AND 运算符,仅当两个表达式匹配时才显示结果

假设我们使用OR运算符。正则表达式搜索给定的搜索参数之一。在下一个示例中,我们搜索包含单词my或 的行false。要使用这些运算符,您需要使用-Egrep 中的选项应用扩展正则表达式。

或运算符
  或运算符
cry0l1t3@htb:~$ grep -E "(my|false)" /etc/passwd

lxd:x:105:65534::/var/lib/lxd/:/bin/false
pollinate:x:109:1::/var/cache/pollinate:/bin/false
mysql:x:116:120:MySQL Server,,:/nonexistent:/bin/false

由于两个搜索参数之一始终出现在三行中,因此所有三行都会相应显示。但是,如果我们使用AND运算符,对于相同的搜索参数,我们将得到不同的结果。

与运算符
  与运算符

  AND operator

cry0l1t3@htb:~$ grep -E "(my.*false)" /etc/passwd

mysql:x:116:120:MySQL Server,,:/nonexistent:/bin/false

基本上,我们用这个命令所说的是,我们正在寻找一个我们想要同时看到my和 的行false。一个简化的示例也是使用grep两次,如下所示:

  与运算符
cry0l1t3@htb:~$ grep -E "my" /etc/passwd | grep -E "false"

mysql:x:116:120:MySQL Server,,:/nonexistent:/bin/false
  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值