好多编辑器都是正则表达式的替换的,比如emacs,其他没有尝试过,不过基本原理都应该是一样的。
起因:在工作中碰到database的schema移植问题,比如将mysql
drop table if exists ems;
转换成oracle的:
drop table ems cascade constraints;
其中 ems 是变化的,其他都是固定不变。
emacs的解决办法是
M-x replace-regexp
回车输入:
drop table if exists \([a-z]*\);
再输入要替换的表达式:
drop table \1 cascade constraints;
DONE
简洁吧!
以下是官方文档的相关描述:
In replace-regexp, the newstring need not be constant: it can refer to all or part of what is matched by the regexp. `\&' in newstring stands for the entire match being replaced. `\d' in newstring, where d is a digit, stands for whatever matched the dth parenthesized grouping in regexp. To include a `\' in the text to replace with, you must enter `\\'. For example,
M-x replace-regexp RET c[ad]+r RET \&-safe RET
replaces (for example) `cadr' with `cadr-safe' and `cddr' with `cddr-safe'.
M-x replace-regexp RET \(c[ad]+r\)-safe RET \1 RET
可以看出,'\d'是对分组进行相应的替换
分享到:
相关推荐
这个包提供了以下功能: xah-查找文本xah-find-text-regex xah-查找-计数xah查找替换文本xah查找替换文本正则表达式特征: •纯emacs lisp。 不依赖于unix / linux grep / sed / find。 在 Windows 上特别有用。 •...
1. 正则表达式的引擎:正则表达式的引擎已经被许多 Unix 工具实现,包括 grep、awk、vi 和 Emacs 等。许多脚本语言也支持正则表达式,例如 Python、Tcl、JavaScript 和 Perl。 2. Java 正则表达式的历史:Java 一直...
正则表达式(Regular Expression,简称regex或regexp)是一种强大的文本处理工具,它使用特定的语法来描述字符串模式,广泛应用于搜索、替换、数据提取等任务。在UNIX系统中,正则表达式有着广泛的应用,因为许多...
在Emacs的上下文中,正则表达式通常用于搜索、替换以及模式匹配等操作。Elisp(Emacs Lisp)是Emacs编辑器使用的内置脚本语言,它提供了丰富的函数和库来支持正则表达式的操作。 RX格式是Emacs社区为Elisp正则...
正则表达式支持的工具众多,包括但不限于grep、awk、vi和Emacs文本编辑器。脚本语言如Python、Tcl、JavaScript和Perl也都支持正则表达式,其中Perl在文本处理方面的应用尤为出色。 在Java语言中,正则表达式的支持...
1. **Vim/Emacs**:作为历史悠久的文本编辑器,Vim和Emacs拥有大量的忠实用户。它们提供了丰富的自定义选项和强大的编辑功能,如宏录制、多窗口编辑、代码补全等。虽然学习曲线较陡峭,但一旦熟练掌握,可以极大提高...
而早期的版本则使用regex模块,提供了Emacs风格的模式。但是,由于Emacs风格的模式在可读性和功能上都较为欠缺,所以在编写新代码时推荐使用re模块。 正则表达式实质上是内嵌在Python中的一种小型专业编程语言,...
正则表达式(Regular Expression,简称regex)是编程和数据处理领域中不可或缺的工具,它是一种强大的文本处理模式,能够高效地进行字符串的搜索、替换、分割等操作。在本篇中,我们将深入探讨正则表达式的概念、...
正则表达式(Regular Expression),简称regex或regexp,是一种用于描述字符组合模式的强大工具,被广泛应用于各种编程语言和文本处理工具中,如`ed`、`vim`、`emacs`、`grep`、`awk`、`sed`和`Perl`等。正则表达式...
- 在文本编辑器(如vim、emacs)中,正则表达式常用于查找、替换和多行操作。 - 在Web开发中,正则表达式用于表单验证,确保用户输入的数据格式正确。 9. **效率优化** - 理解并避免回溯,合理使用贪婪与非贪婪...
早期版本则通过`regex`模块提供了Emacs风格的正则表达式支持。 - **优势**:与Emacs风格相比,Perl风格的正则表达式更加功能强大且易于阅读。 - **应用场景**: - **字符串匹配**:检查字符串是否符合某种模式。 ...
- 在线测试网站如regex101、regexr等,可以实时查看匹配结果,有助于理解和调试正则表达式。 通过深入学习和实践,掌握正则表达式不仅可以提高工作效率,还能解决许多复杂的数据处理问题。无论是程序员还是数据...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串模式。它在编程、数据分析、网页抓取等多个领域都有广泛应用。这本"正则表达式书籍"很可能包含以下关键知识点: 1. **基础概念**:正则...
- **regex模块**:Python 1.5 之前的版本提供的 Emacs 风格的正则表达式模式,功能较少且可读性较差,新代码建议避免使用。 #### 2. 简单模式 ##### 2.1 字符匹配 - **普通字符匹配**:大多数字母和数字等普通...
正则表达式是一种强大的文本处理工具,尤其在字符串模式匹配和替换方面具有高度灵活性。在Unix系统中,正则表达式被广泛应用在各种工具如grep、awk、vi和Emacs中,同时也被多种脚本语言如Python、Tcl、JavaScript和...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种简洁而强大的语法来定义一系列字符或字符序列,可以用来检测一个字符串是否...
正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索与替换、文本分析等多个领域。本文档将深入探讨正则表达式的概念、语法以及常见用法,旨在帮助读者...
与之前的`regex`模块提供的Emacs风格相比,`re`模块更加功能强大且易于阅读。 - **正则表达式本质**: 正则表达式(Regular Expression, RE)是一种用于定义字符串集合的小型编程语言,内嵌于Python中,并通过`re`模块...
Python中的正则表达式是通过内置的`re`模块来实现的,自1.5版本开始,Python引入了Perl风格的正则表达式,而早期的`regex`模块则提供了Emacs风格的模式,但因其可读性和功能的限制,现在已较少使用。正则表达式是一...