常用速查

匹配中文字符

[\u4E00-\u9FFF]

匹配网址

[http://|ftp://|https://|www]?[^\u4e00-\u9fa5\s]*?\.[com|net|cn|me|tw|fr][^\u4e00-\u9fa5\s]*


系统学习

学习用书: 正则表达式必知必会

1. 入门

  • 名称: Regular Expression(abbr. regex)

  • 定义: 正则表达式是一些用来匹配和处理文本的字符串

  • 功能:

    • 搜索(匹配文本)
    • 替换(匹配并替换文本)
  • 注意: 不同语言or软件在使用正则时有微小出入

2. 匹配单个字符

  • 纯文本: 放上对应的纯文本就ok
  • 任意字符: 用元字符(Metacharacter) . 来表示任意字符

这相当于Dos中的 ? 以及SQL中的 _

  • 转义符: \ 是一个元字符, 其作用不言而喻, 就是将ta后面的有特殊意义的字符转换为纯文本

一般, 称一个实际的正则表达式为 模式

3. 匹配一组字符

  • 字符集合区间: 在 []中加入想要匹配的单个字符

例: [Cp]a[Tt]可以匹配到如下四个字符串

pat paT Cat CaT

注意: 要想返回全部匹配结果就要用 g 标志(global)
且不同语言or工具使用方法不同
相似地, 如果要无视字母的大小写, 就要用 i 标志

  • 连字符: - 是元字符之一, ta的作用时表示ASCII字符表上, 其左右连接的字符间的所有字符

[0-9][0123456789]完全等价

  • 常用的字符集和区间:

    • [a-z]
    • [A-Z]
    • [0-9]
  • 注意: - 的左右字符必须在ASCII上是前后关系, 否则无意义
    另外, [A-z] 会掺杂进Z和a之间的其他字符, 不推荐使用

  • 取非匹配: 元字符 ^ 如果出现在 [] 中间的最前面, 那么表示不匹配这个区间内的字符

5. “贪婪型"元字符和"懒惰型"元字符

  • 贪婪型: 在一行内尽可能的匹配
  • 懒惰型: 在一行内尽可能的匹配
贪婪型 懒惰型
* *?
+ +?
{n, } {n, }?

正则

688 Words

0001-01-01 08:00 +0800