正则表达式语法和常见的正则表达式

正则表达式详解

先简单了解后,然后再结合例子学习,会进步飞速哦!

正则表达式是什么?

正则表达式又叫做规则表达式(Regular Expression),他是一种文本模式,平时简写为Regex、Regexp、RE,是一种描述字符串匹配的模式,一种对字符串操作的逻辑公式,一种用事先定义好的特殊的字符,或者是这些字符的组合而成的“规范的字符串”。

正则表达式干什么的?
  • 数据验证,验证字符串满足规则,比如获取手机号。
  • 替换某一规则的字符串。
  • 提取某一规则的字符串
正则表达式的组成

普通字符: a-z、A-Z、 0-9
元字符:
非打印字符:

  • \n(换行),
  • \f(换页),
  • \r(回车),
  • \s(空白字符),
  • \S(非空白字符),
  • \t(制表符),
  • \v(垂直制表符


特殊字符:

  • $(结尾),

  • ()(子表达式开头和结尾),

  • * (前面的表达式0或多次),

  • +(前面的表达式1或多次),

  • .(匹配出\n外的但字符),

  • [

  • (前面的表达式0或多次),

  • ****(转义字符),

  • ^(从开始匹配),

  • {

  • |(二选一)
    限定字符

  • * 匹配前面的子表达式 0或多次如ab* 可以匹配 a 也可以匹配 abc

  • **+**匹配前面的子表达式1或多次 如 ab+ 可以匹配 abc 不可以匹配 a

  • 匹配前面的子表达式0或1次 如 ab(cd)? 可以匹配 absdfa中的 ab 也可以匹配 cdccc 中的cd

  • {n} n是个非负整数,匹配n次 ,a{2} 可以匹配 aab中的aa 但是不能匹配ab中的a

  • {n,} n是个非负整数,匹配至少n次 , a{2} aaaab可以匹配 aaaa

  • {n,m} n,m均为非负整数,至少匹配n次最多m次 a{2,3} aaaaab只能匹配aaa。
    定位符

  • ^ 字符串开头位置

  • $ 字符串结尾位置

  • \b 匹配单词边界 , 单词之间的空格

  • \B 匹配单词

简单正则详解
  • [1-3][0-9]* [1-3]表示第一位只能是1-3, [0-9]表示 第二位只能是 0-9的数字,*表示 [0-9]出现1次或者多次。
  • [0-9]{1,2} 表示0-9 最少1位,最多2位 0-99的数字都可以匹配。 第二种写法 [0-9][0-9]{0,1} 或者 [1-9][0-9]?
  • <.*> 可以匹配到<1>123456<1>, <.*?>只能匹配到 <1>
  • 查找重复的单词 \b([a-z]+)\1\b/ig \1标记第一个子匹配项, i表示不分大小写,g表示尽可能多的匹配
    先写到这儿,遇到经典的再补充
常见的正则表达式

[a-z] //匹配所有的小写字母
[A-Z] //匹配所有的大写字母
[a-zA-Z] //匹配所有的字母
[0-9] //匹配所有的数字
[0-9.-] //匹配所有的数字,句号和减号
[ \f\r\t\n] //匹配所有的白字符

[^a-z] //除了小写字母以外的所有字符
[^\/^] //除了()(/)(^)之外的所有字符
[^"’] //除了双引号(")和单引号(’)之外的所有字符
^[a-zA-Z_]$ 所有的字母和下划线
^[[:alpha:]]{3}$ 所有的3个字母的单词
^a$ 字母a
^a{4}$ aaaa
^a{2,4}$ aa,aaa或aaaa
^a{1,3}$ a,aa或aaa
^a{2,}$ 包含多于两个a的字符串
^a{2,} 如:aardvark和aaab,但apple不行
a{2,} 如:baad和aaa,但Nantucket不行
\t{2} 两个制表符
.{2} 所有的两个字符
^[a-zA-Z0-9_]{1,}$ // 所有包含一个以上的字母、数字或下划线的字符串
^[a-zA-Z0-9_]+$ // 所有包含一个以上的字母、数字或下划线的字符串
^[1-9][0-9]*$ // 所有的正整数
^-?[0-9]+$ // 所有的整数
^[-]?[0-9]+(.[0-9]+)?$ // 所有的浮点数

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值