1.数量表达

{n} :出现n次

{m,n}:最少出现m次,最多出现n次

*:表示出现>=0次,相当于{0,}

+:表示出现>=1次,相当于{1,}

?:表示出现1次或0次

|:左右两边正则表达式选择其一

2.字符表达

[0123456789]:相当于[0-9],表示0-9的任意一位数字

[a-z] :一位小写字母

[A-Z] :一位大写字母

[a-zA-Z] :任意一位大写或小写字母

[a-zA-Z0-9] :任意一位数字或字母

[^0-9] :任意一位非数字

3.预定义字符

(预定义字符的大写形式都是小写的反义)

\d:0-9的一位数字,相当于[0-9]

\D:1位非数字字符

\w:一位数字或字母或_,相当于[a-zA-Z0-9_]

\s:一位空字符,匹配任意空白字符,包括空格、制表符、换页符等等,相当于[\f\n\r\t\n]

\S:非空白字符相当于[^\f\n\r\t\n]

. :除换行回车外的任何一个字符

\n:匹配一个换行符

\r:匹配一个回车符

4.特殊字符

所谓特殊字符,就是一些有特殊含义的字符,如"*.txt"中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\ls \*.txt。许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符 (\) 放在它们前面。下面列出了正则表达式中的特殊字符:(请注意在方括号中,不需要转义字符。)

^:既可以表示否顶的意思,也表示以什么开头

[^0-9]:表示非数字

^[0-9]:表示以数字开头

\:将下一个字符标记为特殊字符或原义字符 ,'n' 匹配字符 'n'、'\n' 匹配换行符、序列 '\\' 匹配 "\"、而 '\(' 则匹配 "("

$:匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$

():标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)

[ ] :内容表示可选字符集

.表示除\n之外的任意字符(很重要)

5.正则表达式示例

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

13287612828

用户名(字母开头,数字字母组成至少6位):^[a-zA-Z]{1}[0-9A-Za-z]{5,}$

邮箱:^[0-9A-Za-z]+([-_.]\\w+)*@[0-9A-Za-z]+([-.]\\w+)*[a-z]{2,5}$

邮箱的常见表达:

1).前缀纯数字:15287@qq.com

2).前缀纯字母:zyt@163.com,zk8888@foxmail.com

3).前缀数字+字母:wangwei789@qq.com

4).前缀带点:zyt.blue@jb51.net

5).前缀带_或-:zyt_blue@jb51.net,web-blue@jb51.net

在此不多列举

身份证号:^\\d{18}$|\\d{17}(\\d|X)$

URL^((ht|f)tps?)://\\w+(.\\w+)*([\\w-.@?^=%&:/~+#]*[\\w-.@?^=%&:/~+#])?$

URL常见表达:http://yun.china-jado.com,http://127.0.0.1:8080/pipeline/login.do等

java正则表达式(基础篇)的更多相关文章

  1. 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制

    你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不 ...

  2. java正则表达式基础知识(转)

    1基础 2.1 简单字符类 构造 描述 [abc] a,b或c [^abc] 除a,b或c外的字符 [a-zA-Z] a至z 或 A至Z [a-d[m-p]] a至d 或 m至p [a-z&& ...

  3. java 线程基础篇,看这一篇就够了。

    前言: Java三大基础框架:集合,线程,io基本是开发必用,面试必问的核心内容,今天我们讲讲线程. 想要把线程理解透彻,这需要具备很多方面的知识和经验,本篇主要是关于线程基础包括线程状态和常用方法. ...

  4. python正则表达式基础篇

    1.正则表达式基础 1.1简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...

  5. $Java正则表达式基础整理

    (一)正则表达式及语法简介 String类使用正则表达式的几个方法: 正则表达式支持的合法字符: 特殊字符: 预定义字符: 方括号表达式: 圆括号表达式:用于将多个表达式组成一个子表达式,可以使用或运 ...

  6. JDBC-使用Java连接数据库-基础篇

    这是小主第一次写Java连接数据库博客,初学Java之时,Java连接数据库是我最头疼的,不过经过一个月的学习,也差不多略有收获,所以给大家分享一下. Java连接数据库大约需要五大步骤: 创建数据库 ...

  7. Java正则表达式基础知识整理

    指定为字符串的正则表达式必须首先被编译为此类的实例.然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配.执行匹配所涉及的所有状态都驻留在匹配器中,所以多个 ...

  8. Java正则表达式基础知识及实例说明

    众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛 ...

  9. Java编程基础篇第一章

    计算机语言 人与计算机交流的方式. 计算机语言有很多种如:C语言,c++,Java等 人机交互 软件的出现实现了人与计算机之间的更好的交流(交互) 交互方式 图形化界面:便于交互,容易操作,简单直观, ...

  10. java面试基础篇(三)

    1.Q:ArrayList 和 LinkedList 有什么区别? A:ArrayList查询快!LinkedList增删快.ArrayList是基于索引的数据接口,它的底层是数组.空间占用相对小一些 ...

随机推荐

  1. python中counter()记数

    一:定义一个list数组,求数组中每个元素出现的次数 如果用Java来实现,是一个比较复杂的,需要遍历数组list. 但是Python很简单:看代码 a = [1,4,2,3,2,3,4,2] fro ...

  2. time/datetime/random/string/os/sys/shutil/zipfile/tarfile - 总结

    time 模块: time.time() #时间戳 time.localtime() #当前时间对象元组 time.localtime(123123) #根据时间戳的时间对象 time.mktime( ...

  3. 我的Android进阶之旅------>解决Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.0

    问题描述 今天使用Android Studio 2.0打开我之前的项目时,编译报了如下错误: Error:Cause: com/android/build/gradle/internal/model/ ...

  4. mysql建立索引 删除索引

    建立索引 1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE ...

  5. NHibernate MappingException. No Persister

    在另一个Visual Studio项目(议会mm.k.Infrastructure)我有我的映射文件(一个映射目录),我的hibernate.cfg.xml和一些仓库. 这是我的映射文件: <? ...

  6. Android位置权限以及数组寻找索引的坑

    填坑与求解惑来的. 一.Android 危险权限,来自官方文档的坑??? Android开发者都知道,Android 6.0 之前,权限申请只需要在 AndroidManifest.xml 文件中声明 ...

  7. Codeforces Round #395 (Div. 2) C. Timofey and a tree

    地址:http://codeforces.com/contest/764/problem/C 题目: C. Timofey and a tree time limit per test 2 secon ...

  8. C#中ReferenceEquals和Equals的区别

    ReferenceEquals()判断两个字符串是否指向相同的内存地址:(判断引用) Equals,先判断两个字符串有相同的内存位置,是则两个字符串相等:否则逐字符比较两个字符串,判断是否相等(先判断 ...

  9. 【leetcode刷题笔记】Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  10. 【Head First Servlets and JSP】笔记 25:JSTL 参考

    <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ t ...