首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

网友来稿:何为正则?一正则天下,一文带你看尽精华。

正则表达式的分类 POSIX规范将正则表达式的分为了两种 基本正则表达式(BRE,basic regular expression) 高级功能:扩展正则表达式(ERE,extended regular...expression) BRE和ERE的区别仅仅是元字符的不同: BRE(基础正则表达式)只承认的元字符有^$.[]*其他字符识别为普通字符:() ERE (扩展正则表达式)则添加了(){}?...+|等 只有在用反斜杠“\”进行转义的情况下,字符(){}才会在BRE被当作元字符处理,而ERE 中,任何元符号前面加上反斜杠反而会使其被当作普通字符来处理。...匹配不包含^后的任意字符a或b或c,是对abc的取反,且与^含义不同 a{n,m} 重复前面a字符n到m次(如果用egrep或sed -r可去掉斜线) a{n,} 重复前面a字符至少n次,如果用egrep...() {} a{n,m} a{n,} a{n} 转义字符\:将字符的意思改变(不支持正则符号的,转变字符含义为正则,支持正则的转变 为普通字符含义) 基本正则和扩展正则区别 基础正则BRE 扩展正则

62000
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux正则表达式

    Linux正则表达式 grep与正则表达式简介 文本处理工具中的三剑客--grep、sed、awk grep,grep是根据模式过滤文本,并将符合模式的行显示出来,grep是一组工具集,包括了grep...,这些特殊字符不表示字符字面意义,而是表示控制或者通配的功能 正则表达式的类型 正则表达式又分为两类,基本正则表达式(BRE)和扩展正则表达式(ERE) * BRE:grep默认情况下是支持基本正则表达式的.../etc/bashrc fi 基本正则表达式BRE BRE的元字符 元字符,是指不代表字符本身的意义,而是表示通配和控制。...**这里的分组和上面的单词锚定有本质的区别,单词锚定是root前后必须都是特殊字符,像//、空格、:等,而\(root\)+则表示root是不可分割的整体,而且其后面可以根据指定的匹配次数表示连续的重复的出现...扩展正则表达式元字符ERE ERE的元字符 ERE中的元字符兼容BRE中的元字符,不过BRE中需要使用\来转义的元字符,在ERE中可以不用\了 undefined 1.字符匹配 undefined

    1.9K60

    LinuxShell正则表达式

    简介 正则表达式在处理数据时非常有用,它凭借强大的模式匹配功能,能够用来精确地过滤文本数据,提取有用的数据信息。...在Linux中,主要有两种主流正则表达式引擎: POSIX 基础正则表达式(basic regular expression,BRE)引擎 。...POSIX 扩展正则表达式(extended regular expression,ERE)引擎 。 2. BRE 模式 2.1 基本原则 正则表达式模式都区分大小写。...在正则表达式中,空格和其他的字符没有什么区别。 特殊字符不能在文本模式中单独使用,要使用特殊字符作为文本字符必须用 \ 进行转义。...ERE 模式 ERE 模式在 BRE 模式的基础上扩展了一些额外功能。 3.1 额外特殊字符 特殊字符 名称 功能 ?

    31320

    关于正则表达式第一篇(r3笔记第29天)

    正则表达式在编程语言中,数据库中,linux中都有着广泛的应用,一说起正则表达式就有些高深晦涩的味道,正则表达式精炼而重要,在Linux中有着举足轻重的作用,也是学好sed,awk的一个基本门槛。...POSIX基本正则表达式引擎 BRE POSIX扩展正则表达式引擎 ERE 大多数的Linux实现中都是BRE,也是默认的实现,还有扩展的实现就是ERE....像grep,awk就支持基本和扩展的引擎,sed只支持基本引擎,也是基于性能的考虑。 学习awk相当于学习了一门新的编程语言,所以awk的功能很完善,扩展的引擎也支持了。...t‘ --如果没有使用ERE就不会匹配到任何的数据 $ echo "bt" |grep -E 'b[ae]?t' --启用了ERE之后,就可以正确匹配了。...bt 关于BRE,主要有以下的模式 纯文本 特殊字符 锚字符 点字符 字符组 排除字符组 使用区间 特殊字符组 星号 --纯文本 对于纯文本来说是大小写敏感的,空格和数字也可以正常匹配,胆识空格不需要转义

    69240

    Mac下利用Flex和Bison实现控制台计算器

    用 Flex 和 Bison 实现一个功能更为强大的计算器,包含以下运算: a) 加、减、乘、除运算 b) 乘方、开方运算 c) 位运算– 与 & 、或 |、非 ~ d) 阶乘运算 !...注意这里使用的正则表达式的形式是ERE而不是BRE。 ERE与BRE比较明显的区别就是, ERE使用+表示字符重复一次以上,*表示字符重复0次以上。...BRE使用{1,}这种方式表示字符重a 3 文件的第三部分,是% % 到% % 的部分。 这里定义了词法分析器在解析的处理动作。 yytext是一个flex内部的标识符,表示匹配到的字符串。...与flex类似,json2tdata也是自定义的前缀。...---- 遇到的难点和解决方案 环境的配置 由于macOS与windows不同,因此需要针对特殊问题进行特殊处理,从http://www.itdaan.com/keywords/Flex+Bison+Using

    1.8K30

    【编程语言】正则表达式:POSIX 与 PCRE 的全面比较及应用

    POSIX 正则表达式分为两类:基本正则表达式(Basic Regular Expression,BRE) 和 扩展正则表达式(Extended Regular Expression,ERE)。...2.1.2 扩展正则表达式 (ERE) 扩展正则表达式相对于 BRE,增加了更多的操作符,允许更复杂的模式匹配: +:匹配前面的字符一次或多次。 ?:匹配前面的字符零次或一次。...POSIX 与 PCRE 的区别 4.1 功能区别 特性 POSIX PCRE 匹配模式 贪婪匹配(无法使用非贪婪) 支持贪婪与非贪婪匹配 捕获组 基础支持 强大的捕获组、回溯引用支持 断言 不支持 支持正向和负向断言...该标准主要为文本处理工具(如 grep、sed、awk)定义了基础正则表达式(BRE)和扩展正则表达式(ERE)两种形式。...和 ERE 的具体语法、规则和用法。

    21710

    Linux系统开发: linux下正则表达式

    普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。 在少数情况下,正则表达式可能失效,多数与字符集有关。...1.2 区分通配符与正则表达式 这里一定要弄清楚正则表达式和linux下使用的通配符有本质区别。 正则表达式用来找:【文件】内容,文本,字符串。一般只有三剑客支持。...(此表达式实测有出入) 不支持 | | 交替匹配|两边的任意一项,有时需用到转义字符 ab\(c\|d\),可匹配abc或abd 只有在用反斜杠\进行转义的情况下,字符(),{}才会在BRE被当作元字符处理...,而ERE中,任何元符号前面加上反斜杠反而会使其被当作普通字符来处理。...所以ERE中直接使用(),{},而BRE则\(\) ,\{\} grep中调用-E参数指定使用扩展正则表达式。 sed中调用-r参数指定使用扩展正则表达式。 或者直接使用egrep。

    1.4K10

    LinuxShell命令grep

    其中,OPTIONS 为指定的选项参数,PATTERN 为匹配模式(可以为固定字符串、基础正则表达式 BRE 、扩展正则表达式 ERE 以及 Perl 兼容正则表达式 PCRE),FILE 为指定文件输入...PATTERN 指定为 BRE 或 ERE 可参照 LinuxShell正则表达式 。 3....常用参数 3.1 基础信息 选项参数 说明 --help 帮助手册 -V, --version 版本信息 3.2 选择匹配模式 选项参数 说明 -E, --extended-regexp 使用 ERE...解释 PATTERN -F, --fixed-strings 把 PATTERN 仅当做固定字符串来解释 -G, --basic-regexp 使用 BRE 解释 PATTERN(默认) -P, --...(词的组成字符是字母、数字、下划线)匹配的字符串是必须是行首或者一个不是词组成的字符之后,且必须是行尾或者一个不是词组成的字符之前 -x, --line-regexp 只输出完整行匹配的行(与 -w 同时使用则

    74910

    第二十章 : 正则表达式

    但是在我们能完全理解这些工具提供的所有功能之前,我们不得不先看看,经常与这些工具的高级使用相关联的一门技术——正则表达式。...就在我们认为这已经非常令人困惑了,我们却发现 POSIX 把正则表达式的实现分成了两类:基本正则表达式(BRE)和扩展的正则表达式(ERE)。...What’s the difference between BRE and ERE? It’s a matter of metacharacters....WithBRE, the following metacharacters are recognized: BRE 和 ERE 之间有什么区别呢?这是关于元字符的问题。...然而(这也是有趣的地方),在 BRE 中,字符“(”,“)”,“{”,和 “}”用反斜杠转义后,被看作是元字符,相反在 ERE 中,在任意元字符之前加上反斜杠会导致其被看作是一个文本字符。

    39710

    for in与for of的区别

    在JavaScript中,for…in和for…of都是用来遍历集合的循环控制结构,但它们之间存在一些重要的区别: 用途不同: for…in循环用于遍历对象的属性。...for…of循环用于遍历可迭代对象(如数组,字符串,Set,Map等)的值。 遍历的内容不同: for…in会遍历对象所有的可枚举属性,包括原型链上的属性。...for…of遍历的是可迭代对象的实际值,不包括原型链上的值。 循环控制不同: for…in循环使用对象的属性名作为循环变量的值。 for…of循环使用迭代器的值作为循环变量的值。...for…of循环中,只有可迭代对象中实际存在的值才会被遍历到。 与数组的索引关系: for…in不直接与数组的索引相关联,所以不能直接获取索引。...for…of可以与数组的索引相关联,通过数组的entries()方法,可以同时获取索引和值。

    44910

    《Linux命令行与shell脚本编程大全》第二十章 正则表达式

    在linux中有两种流行的正则表达式引擎: 1)POSIX基础正则表达式(BRE)引擎 2)POSIX扩展正则表达式(ERE)引擎 大部分linux工具都至少符合POSIX BRE引擎规范,能够识别该规范定义的所有模式符号...但是,有些工具只支持BRE引擎规范下的子集。比如sed,这是出于速度方面的考虑。 gawk程序用ERE引擎来处理它的正则表达式模式。...20.2 定义BRE模式 20.2.1 纯文本 例子: $echo “This is test line” | sed -n ‘/test/p’ $echo “This is test line”...$echo “This is foot” | sed –n ‘/[a-ch-n]oot/p’ 20.2.8 特殊的字符组 除了自定义的区间(比如[0-9] [a-f])之外,BRE还包含了一些特殊的字符组...(POSIX ERE) 提供了一些可以供linux应用和工具使用的额外符号。

    1.2K60
    领券