匹配特定字符串:

只能输入长度为3的字符:"^.{3}$"。

只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。

正则表达式匹配身份证号码

身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。

与之匹配的正则表达式:(^\d{15}$)|(^\d{17}([0-9]|X)$)

正则表达式匹配电子邮箱或者电子邮件地址

正则匹配表达式:/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i

国际域名格式如下:域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。

说明:

①/内容/i 构成一个不区分大小写的正则表达式;^ 匹配开始;$ 匹配结束。

②[a-z] E-Mail前缀必需是一个英文字母开头

③([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。

④*表示0个或多个前面的字符.

⑤[a-z0-9]* 匹配0个或多个英文字母或者数字;[-_]? 匹配0个或1“-”,因为“-”不能连续出现。

⑥[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾

⑦@ 必需有个有@

⑧([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。

⑨[\.] 将特殊字符(.)当成普通字符;[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等。

⑩([\.][a-z]{2})? 匹配0个或者1个[\.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}

正则表达式匹配电话号码和手机号码

正则表达式     \d{3}-\d{8}|\d{4}-\d{7}

匹配         0511-4405222 |021-87888822

不匹配     02-552255 12345-784787

正则表达式     (^\([0]\d{2}|\d{4}\))(\d{6,7}$)

匹配         (021)1234567 |(0411)123456 | (000)000000

不匹配     (123)1234567 | 025123456 |0252345678

正则表达式匹配用户密码

密码形式可以根据开发需求自己设定,下面是匹配密码的例子:

正则表达式     ^[a-zA-Z]\w{5,17}$

匹配         以字母开头,长度在6~18之间,只能包含字符、数字和下划线

正则表达式匹配日期时间

正则表达式     ^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$

匹配         12:15 | 10:26:59 |22:01:15

不匹配     24:10:25 | 13:2:60

正则表达式     ^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$

匹配         10/03/1979 | 1-1-02 |01.1.2003

不匹配     10/03/197 | 09--02--2004 |01 02 03

正则表达式 ^([2-9]\d{3}((0[1-9]|1[012])(0[1-9]|1\d|2[0-8])|(0[13456789]|1[012])(29|30)|(0[13578]|1[02])31)|(([2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00))0229)$

匹配         20000101 | 20051231 |20040229

不匹配     19990101 | 20053112 |20050229

正则表达式     ^([1-9]|1[0-2]|0[1-9]){1}(:[0-5][0-9][aApP][mM]){1}$

匹配         08:00AM | 10:00am |7:00pm

不匹配     13:00pm | 12:65am

正则表达式匹配IP地址

正则表达式 ^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$

匹配         127.0.0.1 |255.255.255.0 | 192.168.0.1

不匹配     1200.5.4.3 | abc.def.ghi.jkl| 255.foo.bar.1

正则表达式      ^((0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})\.){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})(?(\/)\/([0-9]|[1-2][0-9]|3[0-2])|)$

匹配         192.168.0.1 |192.168.0.1/32 | 255.255.0.0/1

不匹配     010.0.0.0 | 192.168.0.1/33| 256.0.1.55

正则表达式     ^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$

匹配         97.67.44.20 |199.154.37.214 | 127.0.0.1

不匹配     63.125.94.287 |140.370.a.187 | 94.923.1

正则表达式     /^(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\/(\d{1}|[0-2]{1}\d{1}|3[0-2])$/

匹配         192.168.100.1/24 |0.0.0.0/0

不匹配     192.168.100.1/33 |0.0.0.0/90

正则表达式匹配汉字或中文

正则匹配中文汉字根据页面编码不同而略有区别:

GBK/GB2312编码:[x80-xff>]+ 或 [xa1-xff]+

UTF-8编码:[x{4e00}-x{9fa5}]+/u

转载于:https://www.cnblogs.com/new0801/p/6177020.html

Linux系统编程(18)——正则表达式实用举例相关推荐

  1. Linux系统编程---18(线程池相关概念及其实现)

    线程池 概念: 一堆线程+任务队列 作用 避免大量线程频繁的创建/销毁时间成本 避免瞬间大量线程创建耗尽资源,程序崩溃危险 实现 创建固定数量的线程+创建一个线程安全的任务队列 一种线程使用模式. 线 ...

  2. Linux系统编程18:超详解进程程序替换exec函数的一些用法

    文章目录 (1)进程程序替换是什么 (2)exec-替换函数 (3)实例展示-了解exec函数的替换原理 A:execl和execv B:execlp和execvp C:替换自己的程序和execle ...

  3. 【README】Linux系统编程必读:本专栏内容提要以及系统调用接口总结

    文章目录 前言 第一部分:博客知识点 (1)基础篇 Linux系统编程1:Linux中使用率最高的一些命令 Linux系统编程2:详解Linux中的权限问题 Linux系统编程3:基础篇之详解Linu ...

  4. 嵌入式Linux系统编程学习之二常用命令

    嵌入式Linux系统编程学习之二常用命令 文章目录 嵌入式Linux系统编程学习之二常用命令 前言 一.常用命令 1.su(用户切换) 2.useradd(添加用户) 3.passwd(修改密码) 4 ...

  5. Linux 系统编程 -进程概念篇

    Linux系统编程-进程篇 冯诺依曼体系结构 冯诺依曼的两个重要思想 当代计算机的三级缓存 操作系统 操作系统的概念 操作系统的组成 操作系统作用 Linux下的操作系统体系 进程 进程概念 进程特性 ...

  6. 资深程序员带你攻克 Linux 系统编程

    作者简介:宇文拓,近十年 Linux C/C++ 开发经验,现就职于某创业公司,负责服务器架构与系统设计.曾就职于某通信业知名美企,负责核心网和防火墙产品研发.在 GitHub 上发布了开源项目 An ...

  7. 攻克 Linux 系统编程

    课程亮点 完整学习路线图,系统掌握核心知识点 内核源码深入分析,知其然更知所以然 高频问题全面汇总,精准定位症结所在 八大主题商业案例,实操中获得拔高提升 专家推荐 曾与宇文拓共事五年,他对技术的钻研 ...

  8. 【Linux】Linux系统编程(入门与系统编程)(一)(环境搭建、常见指令以及权限理解)

    目录 linux系统编程 : 1.推动技术进步的基本模式 2.理解操作系统的发展 Linux 背景介绍 UNIX发展的历史: Linux发展历史 开源 Linux的发行版本: a.技术角度 b.商业化 ...

  9. 【读书笔记】linux系统编程

    linux系统编程 原作名:Linux System Programming 作者: Robert Love 第一章 入门和基本概念 1.1 系统编程 应用程序需要与更高层次的库进行交互,系统程序就是 ...

  10. 【Linux系统编程】进程间通信之无名管道

    00. 目录 文章目录 00. 目录 01. 管道概述 02. 管道创建函数 03. 管道的特性 04. 管道设置非阻塞 05. 附录 01. 管道概述 管道也叫无名管道,它是是 UNIX 系统 IP ...

最新文章

  1. R语言ggplot2可视化指定保存到pdf的图像的具体尺寸、保证缩放的一致性:使得绘图元素(文本、点大小等)在设计上都具有相同的绝对大小、设置全局数据点大小、主题格式、设置图像保存的具体尺寸
  2. 一直都很喜欢的软件--基于平台
  3. 无法打开包括文件:“osgGA/MatrixManipulator”:No such file or directory
  4. Oracle数据库的trigger(触发器)
  5. 前端学习(2967):实现路由跳转的方式
  6. java学习(69):java模式设计之适配器
  7. Oracle 基础知识
  8. Android开发四大组件
  9. Hibernate Session合并,更新,保存,saveOrUpdate,持久化示例
  10. python语言太差_Python语言 最差实践
  11. 自己动手写操作系统-经典书籍
  12. 华为电脑和手机一碰传_华为手机怎么一碰传连接电脑传输照片和文件
  13. 计算机专业英语prototype,[听单词] 计算机专业英语词汇音频72,计算机英语单词MP3...
  14. 宁波一货船在东海海域沉没
  15. Halcon卡尺测量
  16. 跨时钟域同步1---亚稳态的产生和解决方案
  17. python关于re模块(正则表达式)
  18. 基于spring boot 的学生科研项目共享平台毕业设计源码271611
  19. 软件比人可靠——错误管理软件TestDirector
  20. 解决cuid卡写数据后,无法读取。以及救卡方法

热门文章

  1. 实现一维卷积神经网络
  2. 【MATLAB】饼图
  3. 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上。
  4. 文末福利 | 学习如何构建行业知识图谱(以医疗行业为例)
  5. 基于依存句法规则的篇章级情感分析demo
  6. css模型安装,【CSS】CSS-框模型+定位+实训练习
  7. Eclipse用法和技巧六:自动生成get和set方法1
  8. android 中如何监听耳机键消息
  9. 维护项目的管理策略案例
  10. 西门子g120c面板参数设定_西门子PCS7模拟量单位设置