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

Emacs Lisp:相同的正则表达式可以匹配具有相同数量分组的两种不同模式吗?

Emacs Lisp:是的,相同的正则表达式可以匹配具有相同数量分组的两种不同模式。

在Emacs Lisp中,正则表达式是一种非常强大的工具,可以用来匹配和处理文本模式。如果您有两个具有相同数量分组的文本模式,您可以使用相同的正则表达式来匹配它们。

例如,假设您有两个模式,每个模式包含三个分组:

模式1:

代码语言:txt
复制
模式1: 分组1: 123
分组2: 456
分组3: 789

模式2:

代码语言:txt
复制
模式2: 分组1: A123
分组2: B456
分组3: C789

您可以使用以下正则表达式来匹配这两个模式:

代码语言:txt
复制
模式1: 分组1: \d{3}
分组2: \d{3}
分组3: \d{3}
模式2: 分组1: \d{3}
分组2: \d{3}
分组3: \d{3}

这个正则表达式将匹配这两个模式,因为它们具有相同的数量的分组。

需要注意的是,正则表达式非常强大,可以用来匹配非常复杂的文本模式。如果您需要更高级的正则表达式匹配,可以查看Emacs Lisp文档中的正则表达式部分。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Emacs 折腾记

在搜索网友们对此经验之谈时候,自然而然地,目光逐渐聚集到 Emacs 这个使用 Emacs Lisp 作为扩展语言编辑器上。...,以前就听说过有 Evil 这么个东西,试了一下发现这货还真是强大,常用编辑模式、快捷键、命令,甚至宏和正则表达式等等操作都模拟得很好,跟在 gVim 里感觉一模一样,平移编辑习惯坡度一下没了。...在 ~/.emacs 文件里加上: 这样就能在大部分地方(除了 eshell 等外)默认进入 Evil 模式使用 Vim 编辑习惯了。...在 ~/.emacs 文件里加上: M-x slime 就可以进入到 REPL 进行 Common Lisp 学习了。...C/S 模式快速启动 Emacs Emacs 启动速度是相比 Vim 来说被诟病吐槽得很多一个点,我们在 Windows 下可以利用 C/S 模式来实现 Emacs 快速打开文件。

1.3K20

通过函数调用进行字符串替换

Emacs 中,有如下几种文本替换函数: • replace-string 字面量替换 • replace-regexp[1] 正则表达式替换 静态替换是最常见,比如将 foobar 替换成 FOObar...M-x replace-regexp RET regexp RET newstring RET 如果输入 newstring 是以 \, 开头,那么后面就可以跟一个表达式,为了用上匹配文本,有一些特殊字符...: • \& 表示整个匹配文本 • \d 表示正则匹配第 N 个分组 上面这两个特殊字符返回类型是 string,如果匹配文本是数字,那么可以用 \#& \#d 表示。...比如,在 Lisp 中需要用 "\\" 表示一个反斜线字面量,如果直接写 [0-9]\{3,\} 那么在经过 lisp parser 后, 得到是 [0-9]{3} ,而这个正则并不是说匹配一个数字三次...这是在 Lisp 中写正则比较容易出错一点,Manual 中相关资料: • Syntax for Strings (GNU Emacs Lisp Reference Manual)[2] • Regexps

6910
  • Emacs 折腾记

    在搜索网友们对此经验之谈时候,自然而然地,目光逐渐聚集到 Emacs 这个使用 Emacs Lisp 作为扩展语言编辑器上。...这么个东西,试了一下发现这货还真是强大,常用编辑模式、快捷键、命令,甚至宏和正则表达式等等操作都模拟得很好,跟在 gVim 里感觉一模一样,平移编辑习惯坡度一下没了。...)) (slime-setup '(slime-company)) M-x slime 就可以进入到 REPL 进行 Common Lisp 学习了。...自动显示匹配文件名。 不用输入全路径,输入文件名能自动定位到文件。 切换 Buffer 终于可视化了。 …… 使用 smex 自动提示 M-x 后内容。...C/S 模式快速启动 Emacs Emacs 启动速度是相比 Vim 来说被诟病吐槽得很多一个点,我们在 Windows 下可以利用 C/S 模式来实现 Emacs 快速打开文件。

    1.9K10

    深入正则表达式(3):正则表达式工作引擎流程分析与原理释义

    总体来说,两种引擎工作方式完全不同,一个(NFA)以表达式为主导,一个(DFA)以文本为主导!两种引擎各有所长,而真正引用则取决与你需要以及所使用语言。...DFA引擎还可以确保匹配最长可能字符串。但是,因为 DFA 引擎只包含有限状态,所以它不能匹配具有反向引用模式;并且因为它不构造显示扩展,所以它不可以捕获子表达式。...但是,因为传统 NFA 回溯,所以它可以访问完全相同状态多次(如果通过不同路径到达该状态)。因此,在最坏情况下,它执行速度可能非常慢。...,或者有的文章叫做非贪婪模式; 占有优先量词(?+、*+、++、{m,n}+、{m,}+,目前仅Java和PCRE支持),固化分组(?>…)。...优化正则表达式 现在我们知道了控制回溯是控制正则表达式性能关键。 控制回溯又可以拆分成两部分:第一是控制备选状态数量,第二是控制备选状态顺序。

    1.8K00

    30岁文转码:我用了三年时间从哲学家变成知名软件项目核心开发

    从这个角度来看,Emacs 相当于是 Lisp 机,可以用来执行任何类型程序。这里“程序”可以指代一切,包括 Org 或者 Magit 这样大功能、也包括精简文本编辑和操作等小应用。...Emacs 之所以吸引我,是因为 Lisp 机表现出了巨大潜力。我想要是一种不同于以往日常计算工具集成开发层,我希望拥有统一主题、精确排版、相通操作 / 交互模式。...Dired 可以逐个标记条目,也可以使用正则表达式和其他高级命令。 记录一组以 Dired 为起点操作(「键盘宏」),跳转至特定文件,执行某些变更、返回文件管理器,再在下一个文件中重复这个过程。...所以我用其实是 Emacs 当中极简化“专注模式”,这种模式在演示、阅读、写作和编程等场景中都有很好表现。 而且我在 Emacs所有操作都只需要实现一次。...而在 Emacs 当中,每个新功能包都会自动获取其他包内已有内容,例如相同字体配置和主题、通用操作和交互模式等等。以此为基础,我们就能极大加快工作流推进速度。

    37930

    代码之美,正则之道

    需要注意是: 能达到同样匹配结果贪婪与非贪婪模式, 通常是贪婪模式匹配效率较高. 所有的非贪婪模式, 都可以通过修改量词修饰子表达式, 转换为贪婪模式....贪婪模式可以与固化分组(后面会讲到)结合,提升匹配效率,而非贪婪模式却不可以. 分组 正则分组主要通过小括号来实现, 括号包裹子表达式作为一个分组, 括号后可以紧跟限定词表示重复次数....反向引用 能在正则表达式内部使用引用只有『反向引用』,其格式为\+数字 ,通常用于匹配不同位置相同部分子串。...并且该数组具有如下特点: 第 0 个项表示正则表达式捕获文本 第 1~n 项表示第 1~n 个反向引用, 依次指向第 1~n 个分组捕获文本, 可以使用RegExp.$ + “编号1~n” 依次获取分组文本...但正则表达式对象表现却有些不同. 下面我们来详细说明下正则表达式对象表现都有哪些不同.

    1.8K20

    代码之美,正则之道

    需要注意是: 能达到同样匹配结果贪婪与非贪婪模式, 通常是贪婪模式匹配效率较高. 所有的非贪婪模式, 都可以通过修改量词修饰子表达式, 转换为贪婪模式....贪婪模式可以与固化分组(后面会讲到)结合,提升匹配效率,而非贪婪模式却不可以. 分组 正则分组主要通过小括号来实现, 括号包裹子表达式作为一个分组, 括号后可以紧跟限定词表示重复次数....反向引用 能在正则表达式内部使用引用只有『反向引用』,其格式为\+数字 ,通常用于匹配不同位置相同部分子串。...并且该数组具有如下特点: 第 0 个项表示正则表达式捕获文本 第 1~n 项表示第 1~n 个反向引用, 依次指向第 1~n 个分组捕获文本, 可以使用RegExp.$ + “编号1~n” 依次获取分组文本...但正则表达式对象表现却有些不同. 下面我们来详细说明下正则表达式对象表现都有哪些不同.

    1.3K30

    Perl正则表达式:字符与字符集

    ⑴元字符 正则表达式语言由两种基本字符类型组成:原义文本字符和元字符(metacharacter)。...⑵模式分组与捕获 在Perl正则表达式中,圆括号()也是一个特殊元字符,用来对字符串进行分组,很多元字符只对单个字符进行操作,进行分组后可对多个字符进行操作,如下所示: fred+ #可匹配freddddd...,如下所示: (.)\1 #匹配一个任意字符并重复一次,也即匹配两个连续相同字符 y(….) d\1 #匹配y开头后面四个任意字符,d开头也是相同这样字符两个单词,例如yabba....)\4\3) #外层括号只起到模式分组作用,可以匹配类似yabba deffe结构词组 ⑶字符集 字符集(character class)是指一组可能出现字符,通过写在方括号[]内表达式进行表示...元字符优先级规则如下所示: ①在此优先级表最顶端是括号(),在模式分组和反向引用时候使用,括号内部任何部分比括号外部分结合更紧密; ②第二级是数量词即星号(*), 加号(+),问号(?)

    1.1K20

    Emacs Lisp

    前言 Lisp 是一门很古老语言 LISP具有悠久历史计算机编程语言家族,有独特和完全括号前缀符号表示法,起源于1958年,是现今第二悠久而仍广泛使用高级编程语言,只有 FORTRAN 编程语言比它更早一年...Lisp与Scheme有所不同 最近我迷上了 Emacs 所以顺藤摸瓜,竟然搭进去了一门语言 万万没想到,为了了解一个编辑器,竟然搭进去了一门语言 好在这门语言结构比较简单清晰 以致于可以用 15 分钟入个门...;; 为了实验本教程中lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...(+ 2 2) ;; Elisp中表达式可以通过括号来嵌套 (+ 2 (+ 1 1)) ;; 在lisp-interaction-mode模式中,我们可以直接计算一个表达式,计算方法是 (+ 3...nil t) (add-text-properties (match-beginning 1) ;返回匹配模式中,最先匹配位置 (match-end 1) ;返回最后匹配位置 (list 'face

    2.3K40

    Python正则表达式指南

    得益于这一点,在提供了正则表达式语言里,正则表达式语法都是一样,区别只在于不同编程语言实现支持语法数量不同;但不用担心,不被支持语法通常是不常用部分。...数量贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配字符串。...这个模式正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价: ? re提供了众多模块方法用于完成正则表达式功能。...Pattern提供了几个可读属性用于获取表达式相关信息: 1.pattern: 编译时用表达式字符串。2.flags: 编译时用匹配模式。数字形式。3.groups: 表达式中分组数量。...笔者也处于初级阶段,与君共勉,^_^ 另外,图中特殊构造部分没有举出例子,用到这些正则表达式具有一定难度

    1.1K50

    Emacs Lisp

    前言 Lisp 是一门很古老语言 LISP具有悠久历史计算机编程语言家族,有独特和完全括号前缀符号表示法,起源于1958年,是现今第二悠久而仍广泛使用高级编程语言,只有 FORTRAN 编程语言比它更早一年...Lisp与Scheme有所不同 最近我迷上了 Emacs 所以顺藤摸瓜,竟然搭进去了一门语言 万万没想到,为了了解一个编辑器,竟然搭进去了一门语言 好在这门语言结构比较简单清晰 以致于可以用 15 分钟入个门...;; 为了实验本教程中lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...(+ 2 2) ;; Elisp中表达式可以通过括号来嵌套 (+ 2 (+ 1 1)) ;; 在lisp-interaction-mode模式中,我们可以直接计算一个表达式,计算方法是 (+ 3...nil t) (add-text-properties (match-beginning 1) ;返回匹配模式中,最先匹配位置 (match-end 1) ;返回最后匹配位置 (list 'face

    2.2K30

    grep、egrep正则表达式之初窥门径

    正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式 文本。许多程序设计语言都支持利用正则表达式进行字符串操作。...正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。所谓元字符就是指那些在正则表达式具有特殊意义专用字符,不表示其字面意义,而用于额外功能性描述。...正则表达式分类 正则表达式根据元字符数量及功能不同又分为基本 正则表达式(grep)和拓展正则表达式(egrep)。...) 4.分组 \( \):如\(ab\)*(分组模式匹配内容,可由正则表达式引擎记忆在内存中,之后可被引用) 5.引用 \n:引用前面的第n个左括号以及与之对应右括号中模式匹配内容...: ( ):分组|:或 5.引用: \n:引用前面的第n个左括号以及与之对应右括号中模式匹配内容 grep及egrep命令选项 -v: 反向选取 -o:仅显示匹配字串,而非字串所在行-

    76580

    Python正则表达式指南

    得益于这一点,在提供了正则表达式语言里,正则表达式语法都是一样,区别只在于不同编程语言实现支持语法数量不同;但不用担心,不被支持语法通常是不常用部分。...数量贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配字符串。...这个模式正则表达式可以是多行,忽略空白字符,并可以加入注释。...Pattern提供了几个可读属性用于获取表达式相关信息: pattern: 编译时用表达式字符串。 flags: 编译时用匹配模式。数字形式。 groups: 表达式中分组数量。...笔者也处于初级阶段,与君共勉,^_^ 另外,图中特殊构造部分没有举出例子,用到这些正则表达式具有一定难度。有兴趣可以思考一下,如何匹配不是以abc开头单词,^_^

    98370

    Python学习笔记之Python正则表达式指南

    得益于这一点,在提供了正则表达式语言里,正则表达式语法都是一样,区别只在于不同编程语言实现支持语法数量不同;但不用担心,不被支持语法通常是不常用部分。...数量贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配字符串。...这个模式正则表达式可以是多行,忽略空白字符,并可以加入注释。...Pattern提供了几个可读属性用于获取表达式相关信息: pattern: 编译时用表达式字符串。 flags: 编译时用匹配模式。数字形式。 groups: 表达式中分组数量。...笔者也处于初级阶段,与君共勉,^_^ 另外,图中特殊构造部分没有举出例子,用到这些正则表达式具有一定难度。有兴趣可以思考一下,如何匹配不是以abc开头单词,^_^ 参考

    58410

    浅析ReDoS原理与实践

    开发人员使用了正则表达式来对用户输入数据进行有效性校验, 当编写校验正则表达式存在缺陷或者不严谨时, 攻击者可以构造特殊字符串来大量消耗服务器系统资源,造成服务器服务中断或停止。...在模式匹配中,正则表达式通常被用于验证邮箱、URL、手机号码等。 常用元字符: 元字符 说明 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。...\$\lambda_1$\n)” 模式。 (pattern) 匹配pattern并获取这一匹配子字符串。该子字符串用于向后引用。...有限状态自动机拥有有限数量状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态迁移。 有限状态自动机还可以分成确定与非确定两种, 非确定有限状态自动机可以转化为确定有限状态自动机。...2.3 总结 每个恶意正则表达式模式应该包含: 使用重复分组构造 在重复组内会出现 重复 交替重叠 有缺陷正则表达式会包含如下部分: (a+)+ ([a-zA-Z]+)* (a|aa)+ (a|a?

    10K61

    你应该学习正则表达式

    我们可以用伪英文重写这个Regex为[start of line][one or more digits][end of line]。 很简单,不是?...我们可以用\d替换[0-9],结果相同匹配所有数字)。 这个表达式(和一般正则表达式伟大之处在于它无需太多修改,就可以用到任何编程语言中。...\d{2}——两位数,与[0-9]{2}相同 \b ——字边界 请注意\b不同于\s,\s是用于空格字符代码。...5 – 代码注释模式匹配 Regex最有用特殊用法之一是可以成为代码重构器。大多数代码编辑器支持基于Regex查找/替换操作。...要在MacOS上使用sed,并具有体面的正则表达式支持,我建议使用brew install gnu-sed安装sedGNU实现,然后从命令行使用gsed而不是sed。

    5.3K20

    IDE 太重了,所以迁到了 Emacs

    这就是为什么我目前正尝试重新使用 Emacs。 可能你不了解 Emacs,这是一款与 Vim 一样具有传奇色彩文本编辑器,但是它所能做事情要多得多。...你还需要对 Lisp 有一点了解(Emacs 是基于它自己 Lisp 方言 elisp 构建),但如果你是那种甚至考虑像 Emacs 这样东西可以彻底破解的人,这实际上也是乐趣一部分。...但 Emacs 真的更轻?...在早上使用 IntelliJ 情况,你可以看到充满电后,电量被“凶猛吞噬”,在我晚上回到 Emacs 之前,电量就恢复了正常使用模式。 并不是说我需要这个才知道 IntelliJ 真的非常耗电!...Emacs 比任何现代 IDE 都轻得多,同时仍然具有所有重要特性。我希望 JetBrains 能听到我心声,并把它放在心上、为此做点什么!也许,Fleet 就是解决办法?!

    1.1K10

    玩转命令行之文本编辑器篇

    vim 具有程序编辑能力,可以主动以字体颜色辨别语法正确性,方便程序设计。...自诞生以来,Emacs演化出了众多分支,其中使用最广泛两种是:1984年由Richard Stallman发起并由他维护至今GNU Emacs,以及1991年发起XEmacs。...XEmacs是GNU Emacs分支,至今仍保持着相当兼容性。 Emacs使用Emacs Lisp,这种有着极强扩展性编程语言,从而实现了包括编程、编译乃至网络浏览等等功能扩展。...开发者声称,它比正则表达式高亮更快,因为 Tree-sitter 像编译器一样将代码解析成语法树,从而给出更多代码结构信息。 你可以跟踪局部变量,计算缩进和操作选择来选择语法节点。...其实不是,只是个人习惯使用而已,emacs作为编辑器界鼻祖,更有emacs就是个操作系统说法,只是我太菜了 大家完全可以凭借自己喜好去选择自己想要,当然,适合自己才是最好嘛。

    1.2K30
    领券