RegularExpression

出自TideWiki

跳转到: 导航, 搜索
Regular Expression - 规则表达式

目录

什么是规则表达式

Regular Expression - 规则表达式,通常译为“正则表达式”,为了便于理解起见,我将其称为规则表达式,下文中简称为 RE。

规则表达式用来对文本的查找/搜索/匹配、替换、分割、校验数据有效性及其他文本数据的灵活处理。


文本编辑器 (Text Editor)、集成开发环境 (IDE) 对规则表达式的支持

目前多数主流的文本编辑器和集成开发环境(IDE)都支持规则表达式。不过,不同的编辑器或 IDE 的规则表达式的语法可能有所区别,所以用起来时需要注意一下。

文本编辑器 (Text Editor)

下面是我所用过的一些编辑器用规则表达式进行字符串替换的截图。

目的:取出 Apache 2.2 访问日志文件 access.log 中的所有 URI 地址

EditPlus

EditPlus 3.00.358

Regular-Expression-Sample EditPlus-1.png

Regular-Expression-Sample EditPlus-2.png

Notepad++

Notepad ++ 4.8.2

Regular-Expression-Sample Notepad++-1.png

Regular-Expression-Sample Notepad++-2.png

jEdit

jEdit 4.3 pre13,JDK 版本:SUN JDK 1.6.0_05

jEdit 所用的规则表达式语法要灵活很多,JDK 支持的规则表达式 jEdit 均可支持

Regular-Expression-Sample jEdit-1.png


使用不同的规则表达式:

Regular-Expression-Sample jEdit-2.png

Regular-Expression-Sample jEdit-3.png

vi

VIM - Vi IMproved 7.1 (2007 May 12, compiled May 14 2007 16:29:51),运行在 Cygwin 下

Regular-Expression-Sample vi-1.png

Regular-Expression-Sample vi-2.png

UltraEdit

集成开发环境 (IDE)

Microsoft Visual C++

NetBeans

Dev C++

Eclipse

计算机语言对规则表达式的支持

目前主流的编程语言、脚本语言都支持(或者通过相应的第三方库)规则表达式功能。

Java

Java 1.4 以上的版本开始,包含了对规则表达式的支持

java.lang.String

  • String.matches (RE);
  • String.replaceAll (RE, newString);

java.util.regex.Pattern 以 java.util.regex.Matcher

JavaScript、JScript

RegExp Object

  • RegExp.compile (patternString, [flags])
  • RegExp.exec (String); // Search string, returns an array containing the results of that search
  • RegExp.test (String); // Returns a Boolean value that indicates whether or not a pattern exists in a searched string.
<script type="text/javascript">
var re = null;

// 定义一个 Regular Expression 对象
re = new RegExp("(规则表达式测试)+", "gi");

//或者这样定义一个 Regular Expression 对象,这样定义的好处是不用再对 JavaScript 字符串中的特殊字符串进行转义
re = /(规则表达式测试)+/gi;

re.test("If 规则表达式测试 exists, then it will be TRUE"); // 结果为 true

</script>

String

  • String.match (RE)
  • String.replace (RE, newString)
  • String.search (RE)
  • String.split (RE)

C/C++

PCRE

Shell

sed

awk

参考资料

个人工具