前言

本文对正则表达式做一个简要概括,主要包括五点:

  • 常规
  • 量词
  • 捕获
  • 断言
  • 注释

常规

  • ^:匹配字符串开始
  • $:匹配字符串结束
  • \b:单词的开头或结尾,即单词的边界;\B 则是非词的边界
  • \d:数字字符匹配;\D 非数字字符匹配
  • \s:空白字符,等价于[\f\b\n\r\t\v]
  • \w:匹配任何字类字符,包括下划线;\W 与任何非单词字符匹配,等价于[^A-Za-z0-9_]

量词

  • ?:零次或一次
  • +:一次或多次
  • *:零次或多次;通配符.*表示任意数量的不包含换行的字符
  • .:除\n外的任意单个字符,要匹配\n则使用[\s\S]
  • {n}:正好匹配n次
  • {n,}:至少匹配n次
  • {n,m}:至少匹配n次,至多匹配m次

捕获

  • (pattern):匹配pattern并捕获该匹配的子表达式
  • (?<name>pattern):匹配pattern并捕获文本到名称name的组里,等价于(?'name'pattern)
  • (?:pattern):匹配pattern但不捕获该匹配的子表达式

断言

  • (?=pattern):匹配pattern前面的位置
  • (?<=pattern):匹配pattern后面的位置
  • (?!pattern):匹配后面跟的不是pattern的位置
  • (?<!pattern):匹配前面不是pattern的位置

注释

  • (?#comment):不对正则表达式处理产生任何影响,用于提供注释让人阅读

声明:本站所有文章均为原创或翻译,遵循署名 - 非商业性使用 - 禁止演绎 4.0 国际许可协议,如需转载请确保您对该协议有足够了解,并附上作者名 (Tsukasa) 及原文地址