正则表达式 简介

什么是正则表达式?正则表达式是⼀组由字⺟和符号组成的特殊⽂本, 它可以⽤来从⽂本中找出满⾜你想要的格式的句⼦。

⼀个正则表达式是⼀种从左到右匹配主体字符串的模式。“Regular expression” 常缩写为 “regex” 或 “regexp”。

正则表达式可以从⼀个基础字符串中根据⼀定的匹配模式替换⽂本中的字符串、 验证表单、 提取字符串等等

想象你正在写⼀个应⽤, 然后你想设定⼀个⽤户命名的规则, 让⽤户名包含字符、 数字、 下划线和连字符, 以及限制字符的个数, 好让名字看起来没那么丑。

我们使⽤以下正则表达式来验证⼀个⽤户名:

正则表达式

以上的正则表达式可以接受 john_doe 、 jo-hn_doe 、 john12_as 。但不匹配 Jo , 因为它包含了⼤写的字⺟⽽且太短了。

1. 正则表达式的范例

正则表达式的表现形式是一个符合特定语法的字符串,例如:

  • 匹配数字的正则表达式:^[0-9]*$
  • 匹配大写字母组成的字符串:^[A-Z]+$
  • 匹配邮箱地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

 

2. 使用正则表达式的优势

典型的搜索和替换操作要求提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,会变得非常困难。

通过使用正则表达式,可以:

    • 测试字符串内的模式。

例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。 替换文本。

    • 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
    • 基于模式匹配从字符串中提取子字符串。
    • 可以查找文档内或输入域内特定的文本。

例如,可以需要搜索整个网站,删除过时的材料,以及替换某些 HTML 格式标记。

3. 正则表达式的应用领域

目前,正则表达式已经在很多软件中得到广泛的应用,包括 *nix(Linux, Unix等)、HP 等操作系统,PHP、C#、Java 等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。

1)Java 正则表达式

在我们的 Java 教程中,Java 正则表达式 专门介绍了有关 Java 正则表达式的知识。

 

4. 正则表达式的资源

正则表达式其实就是在执⾏搜索时的格式, 它由⼀些字⺟和数字组合⽽成。例如: ⼀个正则表达式 the,它表示⼀个规则: 由字⺟ t 开始,接着是 h,再接着是 e 。"the" => The fat cat sat ...