Skip to content

Latest commit

 

History

History
39 lines (32 loc) · 1.94 KB

Reg.md

File metadata and controls

39 lines (32 loc) · 1.94 KB

正则表达式 快速学习

  • \ 转义字符
  • ^ 起始位置匹配
  • $ 结束位置匹配
  • {} 匹配前面的表达式的上下限次数,单个值表具体次数
  • * 匹配前面的表达式的子表达式(子集){0,}
  • + 匹配前面的表达式的子表达式(子集){1,}
  • ? 匹配前面的表达式的子表达式(子集){0,1}
  • () 标记整个大正则匹配式中的小匹配式(子表达式)的起始与结束,其匹配结果可以使用$+序号获取
  • | 或,匹配内容二选一
  • [xyz] 字符集合,匹配集合内的任一元素
  • [^xyz] 排除型字符集合,不匹配集合内的任一元素
  • [a-z] 字符范围集,匹配范围内的任一元素
  • [^a-z] 排除型字符范围集,不匹配范围内的任一元素
  • . 匹配除'\r','\n'之外的任何单个字符

贪婪模式与非贪婪模式

  • ? 非贪心量化(Non-greedy quantifiers):当该字符紧跟在任何一个其他重复修饰符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”

特殊匹配

  • \b 匹配单词边界 eg. /eg\b/ 匹配never中er,不匹配verb
  • \B 匹配非单词边界 eg. 匹配verb不匹配never
  • \cx x指代[a-z](需指定),c指代control,匹配control-x内容
  • \d [0-9]
  • \D [^0-9]
  • \f 匹配一个换页符
  • \n 匹配一个换行符
  • \r 匹配一个回车符
  • \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价[\f\n\r\t\v]
  • \S 匹配任何非空白字符。等价于[^\f\n\r\t\v]。
  • \t 匹配一个制表符
  • \v 匹配一个垂直制表符。
  • \w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]
  • \W 匹配任何非单词字符。