美文网首页
正则表达式基础语法

正则表达式基础语法

作者: 小花来了 | 来源:发表于2017-04-11 00:48 被阅读0次

正则表达式中,所有字符分为两类:

普通字符元字符

主要普通字符:小写字母、大写字母、数字、下划线、部分特殊符号、非西文字符等

主要元字符(具有特殊含义的字符):. \ { } * + ? ( ) [ ] - | ^ $

. 表示任意一个字符(除了换行符)

转移符,用来改变其他字符的含义,如:

\ 元字符把元字符转义为普通字符,如\.把元字符.转义为普通字符的.

\ 普通字符把普通字符转义为含有特殊含义的字符,如:

\n 换行符    \r 回车符   \t 制表符. . .

重复匹配

(x表示一个字符,或者一个字符类,或者一个组等)

x{n}   x连续出现n次

x{n,}    x至少连续出现n次

x{n,m}   x至少连续出现n次,至多连续出现m次

x*    x连续出现0次或多次,等同于x{0,}

x+    x至少连续出现1次,等同于x{1,}

x?    x出现0次或1次,等同于x{0,1}


选择匹配

使用 实现选择匹配,即多个选项中任选一个

a|b|c   匹配a或者b或者c

red|blue|green   匹配red或者blue或者green

字符类

匹配候选字符的任意一个

[]    [abc]   匹配abc中任意一个字符,类似a|b|c

[^ ]   [^abc]   匹配非abc的任意一个字符 

[ - ]   [0-9]、[a-z]、[a-zA-Z]   匹配范围内的任意一个字符

注意:字符类中的元字符(\除外),会被自动转义为普通字符,比如[.]等同于[\.]

\w   代表一个单词字符,类似于[a-zA-Z0-9_],有的语言中也可以匹配中文

\W   代表一个非单词字符,类似于[^a-zA-Z0-9_]

\d   代表一个数字字符,等同于[0-9]

\D   代表一个非数字字符,等同于[^0-9]

\s   代表一个空白字符

\S   代表一个非空白字符

位置匹配

正则中的匹配有两种,一种是匹配具体的字符,另一种是匹配特定的位置

^   匹配文本开始位置

$   匹配文本结束位置

\b   匹配单词边界(单词开始位置或结束位置)

校验操作时,是否使用^$对校验操作没有影响

获取、替换等操作时,一般不使用^$

组 group

正则使用 ( ) 表示一个组,组可以让若干字符形成一个小整体

(ab)   匹配ab

(red|blue|green)   匹配red或者blue或者green

(red|blue|green)   color匹配red color或者blue color或者green

color在匹配时,组的当前"取值" 会被临时保存起来,方便引用。可以使用 \1 引用第一个组的当前"取值",最多可以引用九个不同的组:\9

(ab)c\1   匹配abcab

([ab])\1   匹配aa或者bb

(a)(b)\1\2   匹配abab

标记 flag

标记用来额外指定正则的匹配策略(标记可以不写在正则表达式内)

i   大小写不敏感insensitive(也可以理解成ignore)

g   全局匹配global效果是可以依次的获取到和正则匹配的所有子字符串

m   多行匹配multiline效果是^$可以匹配一段文本中每行的开始和结束位置

常用正则表达式

校验数字:^[0-9]*$

校验整数或者小数:^[0-9]+([.][0-9]+){0,1}$

校验qq号:[1-9][0-9]{4,}

校验手机号:^1[34578]\d{9}$

校验身份证:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|x|X)$)

校验日期(格式:yyyy-mm-dd,已考虑平闰年):^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

校验email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

校验URL:^[a-zA-z]+://[^\s]*$

相关文章

  • 正则表达式的使用

    1.正则表达式的语法 iOS开发中正则表达式的基础使用 2.正则表达式不常用的语法 Q:经常看见的正则前面的 (?...

  • 无标题文章

    了解正则表达式语法 了解正则表达式语法

  • 007零基础学Python:Python 正则表达式--学习笔记

    Python 正则表达式 正则表达式基础 基本概念: 正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及...

  • 07_RegExp

    基础 定义 正则表达式是具有特殊语法结构的字符串Regular Expression reg regexp 作用 ...

  • Python帮你找东西——Cheat Sheet

    上一篇文章给大家介绍了正则表达式的基础概念,字符和语法,展示了正则表达式常用的功能。但是正则表达式虽然很强大,但也...

  • Java 正则表达式

    参考文章:正则表达式30分钟入门教程 语法:正则表达式语法手册 正则表达式在Java和其他语法中的区别 在其他语言...

  • 2018-08-03正则表达式(15)

    Python基础语法(15) 正则表达式 complie() 用来将正则表达时编译,之后使用时直接调用,提升速度。...

  • 入手简单爬虫

    前置知识和要求: Python基本语法,程序逻辑基础完成 了解HTML 正则表达式 推荐视频:Python开发简单...

  • re正则表达式——python

    使用形式化模式搜索和修改文本。python中正则表达式通过re模块使用语法以per语言语法为基础。 查找文本中的模...

  • 正则表达式基础到高阶(语法)

    正则表达式基础到高阶(语法) 元字符 反义 重复模式 贪婪与懒惰 分组 后向引用 要匹配 taobao taoba...

网友评论

      本文标题:正则表达式基础语法

      本文链接:https://www.haomeiwen.com/subject/wxhcattx.html