正则表达式grep, egrep, fgrep

2023-12-06 19:32

本文主要是介绍正则表达式grep, egrep, fgrep,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

grep,egrep,fgrep : print lines matching a pattern

1.grep :

  grep [options] PATTERN FILE...

  PATTERN由元字符和和普通字符组成

  -i : --ignore-case , 忽略大小写

  -o : --only-matching, 只显示所匹配到的字符,二不是整行

  -n : --line-number, 输出所匹配行的行号

  -v : --invert-match, 显示除匹配行外的所有行

  -E : --extended-regexp, egrep

  -F : --fixed-strings, fgrep

  -P : --per-regexp

  -A NUM : --after-context, 显示匹配行后NUM行

  -B NUM: --before-context,显示匹配行强NUM行

  -C NUM: --context,显示匹配行前、后NUM行

  元字符

    匹配字符:

      . : 匹配任意单个字符

      [],[^] : 匹配指定的单个字符

        [0-9], [[:digit:]] : 匹配单个数字

        [[:alpha:]] : 匹配单个大、小写字母

        [[:lower:]] : 匹配单个小写字母

        [[:upper:]] : 匹配单个大写字母

        [[:alnum:]] : 匹配单个数字或字母

        [[:bank:]] : 匹配单个空白字符

        [[:punct:]] : 匹配标点符号

        [[:contrl:]] : 匹配当控制字符

        [[:xdigit:]] : 匹配单个16进制数

    匹配次数:用来指定前面的字符出现的次数

      * : 任意次数,包括0次

      \+ : 至少一次

      \? : 0次或1次,前面的字符可有,可无

      \{m\}, \{0,n\}, \{m,n\}, \{m,\} : 分别指m次,最多n次,m-n次,最少m次

      .* : 任意长度,任意字符

    位置锚定:

      ^ : 行首锚定,模式左侧

      $ : 行尾锚定,模式右侧

      \< : 词首锚定,单词模式左侧,单词指由数字和字母构成的字符串

      \> : 词尾锚定,单词右侧

        ^PATTERN$, 匹配整行只有指定的模式

        ^$ : 空行

        ^[[:blank:]]$ : 整行无可见字符

        \<word\> : 匹配整个单词

    分组

        

将任意个字符用括号括起来做一个整体进行匹配

      后向引用:应用前面分组括号所匹配的内容,非模式本身, \1,\2 ...

          

.*\1 : 匹配第一个括号所匹配的内容

    

2. egrep : 等同于 grep -E 

  egrep [options] PATTERN FILE...

  PATTERN由元字符和和普通字符组成

  -i : --ignore-case , 忽略大小写

  -o : --only-matching, 只显示所匹配到的字符,二不是整行

  -n : --line-number, 输出所匹配行的行号

  -v : --invert-match, 显示除匹配行外的所有行

  -A NUM : --after-context, 显示匹配行后NUM行

  -B NUM: --before-context,显示匹配行强NUM行

  -C NUM: --context,显示匹配行前、后NUM行

  PATTERN由元字符和和普通字符组成

  元字符

    匹配字符:

      . : 匹配任意单个字符

      [],[^] : 匹配指定的单个字符

        [0-9], [[:digit:]] : 匹配单个数字

        [[:alpha:]] : 匹配单个大、小写字母

        [[:lower:]] : 匹配单个小写字母

        [[:upper:]] : 匹配单个大写字母

        [[:alnum:]] : 匹配单个数字或字母

        [[:bank:]] : 匹配单个空白字符

        [[:punct:]] : 匹配标点符号

        [[:contrl:]] : 匹配当控制字符

        [[:xdigit:]] : 匹配单个16进制数

    匹配次数:用来指定前面的字符出现的次数

      * : 任意次数,包括0次

      + : 至少一次

      ? : 0次或1次,前面的字符可有,可无

      {m}, {0,n}, {m,n}, {m,} : 分别指m次,最多n次,m-n次,最少m次

      .* : 任意长度,任意字符

    位置锚定:

      ^ : 行首锚定,模式左侧

      $ : 行尾锚定,模式右侧

      \< : 词首锚定,单词模式左侧,单词指由数字和字母构成的字符串

      \> : 词尾锚定,单词右侧

        ^PATTERN$, 匹配整行只有指定的模式

        ^$ : 空行

        ^[[:blank:]]$ : 整行无可见字符

        \<word\> : 匹配整个单词

    分组

      () 将任意个字符用括号括起来做一个整体进行匹配

      后向引用:应用前面分组括号所匹配的内容,非模式本身, \1,\2 ...

        (th).*\1 : 匹配第一个括号所匹配的内容

3.fgrep : 不支持正则表达式, 仅匹配指定的字符串

  fgrep [optings] PATERN File...

Andraw|朱标

这篇关于正则表达式grep, egrep, fgrep的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/463047

相关文章

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

匹配电子邮件地址的正则表达式

这个正则表达式 QRegularExpression regex(R"((\w+)(\.|_)?(\w+)@(\w+)(\.(\w+))+))"); 用于匹配电子邮件地址的格式。下面是对这个正则表达式的逐步解析和解释: 1. QRegularExpression 构造函数 QRegularExpression regex(R"((\w+)(\.|_)?(\w*)@(\w+)(\.(\w+))+

notepad++ 正则表达式多条件查找替换

基础语法参考: https://www.cnblogs.com/winstonet/p/10635043.html https://www.linuxidc.com/Linux/2019-05/158701.htm   通常情况下我们查找的内容和要被替换掉的内容是一样的,我们只需要使用正则表达式精确框定查找内容,替换直接输入要替换的内容即可。 但有时会比较复杂,查找的内容,只需要替换其中

js正则表达式test方法的问题

今天在网上碰到一个帖子,写了一个关于Regex的奇怪现象,(文章来源http://www.php100.com/html/webkaifa/javascript/2007/0109/1866.html) 代码如下 <script type="text/javascript"><!--var re = /^\d+(?:\.\d)?$/ig; alert(re.test('112.3'

Java利用正则表达式获取指定两个字符串之间的内容

package com.starit.analyse.util;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class DealSt

AS3中正则表达式中如何表达“或”

var reg:RegExp=/\r|\n|\t/g;                 var msg:String="123\rabc\n\tabc\ta\123";                 msg=msg.replace(reg,"");                 trace(msg);

as3 正则表达式(比较齐全)

正则表达式是AS3比较重要的一个部分,具体内容如下:   //正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。 //下面是元字符部分 //现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } | //^匹配字符串的开头 varpattern:RegExp=/^小虫/; var str:String="小虫是好人"; trace(str, " is

as3 常用正则表达式(来自天地会论坛之七夜)

正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里转摘出了一些常用的正则表达式语句,大家用到的时候就不用自己写了。 红色字体为常用正则: 下面这个类是我自己写的一个示例,想必大家做客户端,用户登录信息肯定会用的正则表达式。 package com.qiye.regexp { /**   * 常用正则表达式。   * @author Qiy

认识正则表达式

为什么要学习正则表达式 因为爬虫需要!!! 一般来说爬虫需要四个主要步骤: 明确目标 (要知道你准备在哪个范围或者网站去搜索)爬 (将所有的网站的内容全部爬下来)取 (去掉对我们没用处的数据)处理数据(按照我们想要的方式存储和使用) 一般情况我们拉取的网页数据庞大并且很混乱,其中很大一部分东西是我们不关心的,因此我们需要将其按要求过滤和匹配出来。 那么对于文本的过滤和指定规则的匹配,最

Linux grep命令详解

grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 grep [-acinv] [--color=auto] '查找字符串' filename 参数: -a :将binary文件以text文件的方式查找数据-c :计算找到‘查找字符串’的次数-i :忽略大小写的区别,即把大小写视为相同-n :顺便输出行号-v :反向选择,即显示出没有‘查找字符