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
Notepad++
Notepad ++ 4.8.2
jEdit
jEdit 4.3 pre13,JDK 版本:SUN JDK 1.6.0_05
jEdit 所用的规则表达式语法要灵活很多,JDK 支持的规则表达式 jEdit 均可支持
使用不同的规则表达式:
vi
VIM - Vi IMproved 7.1 (2007 May 12, compiled May 14 2007 16:29:51),运行在 Cygwin 下
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








