编程或者电脑使用过程中,经常需要对字符串进行 匹配,查找,替换,判断。如果单纯用代码 if () ,whlie 什么的进行比较复杂麻烦。正则表达式是一种强大灵活的文本处理工具,专门对字符串进行匹配,查找,替换,判断。

正则表达式的各种匹配符

// 正则表达式的各种匹配符^              从行的开始位置开始匹配
$              匹配到行的结束位置
\b             匹配单词的开始或结束位置.              匹配除换行符的所有任意字符
\w             匹配单字(a-z,A-Z,0-9,下划线)
\W             匹配非单字字符
\s             匹配空白字符
\S             匹配非空白字符
\d             匹配数字字符(0-9)
\D             匹配非数字字符*              匹配前面表达式零次或多次,等价于 {0,}
+              匹配前面表达式一次或多次,等价于 {1,}
?              匹配前面表达式零次或一次,等价于{0,1}
{n}            匹配前面的表达式n次,n是一个非负整数
{n,}           匹配前面的表达式至少n次,n是一个非负整数
{n,m}          匹配前面的表达式 n-m 次, nm都是非负整数[]             字符类,如[123]表示有123中任意一个数字,[1-9]表示1到9中任意一个数字
()             分组,匹配括号里的整体,(java)+ 就是匹配一个"java"至少出现一次的字符串
^              反义匹配,用在判断条件前。 例如 .*[^\d]\.java$ 就是匹配最后一位非数字的java文件
|              逻辑或
\              转义字符,和编程语言里的一样

了解了这些匹配符,就可以开始写匹配式,很多网站提交信息的时候说填写的什么信息不规范就是正则匹配式进行判断。

手机号码验证:国内手机都是13,15,18开头的11位数字,据此来进行匹配验证

匹配式:    \b1[358]\d{9}\b    开头与结尾写\b,号码开始是1,第二位是3、5、8中的一个数字,剩下九位是数字


boolean check = false;
String regex = "\b1[358]\d{9}\b";
String input = "19100390888";
Pattern pattern = Pattern.compile(regex) //编译正则表达式
Matcher matcher = pattern.matcher(input) //进行匹配
if (matcher.matches()) check = true;
return check;

身份证验证:前六位地区码(数字),中间八位生日(数字),末尾四位标识码(数字)。生日年开头是19或者2,月01-12,日01-31。

匹配式: ^\d{6}((19)|(2\d)\d{2}((0\d)|(1[012]))(([0-2]\d)|(3[01]))\d{4})$


boolean check = false;
String regex = "^\d{6}((19)|(2\d)\d{2}((0\d)|(1[012]))(([0-2]\d)|(3[01]))\d{4})$";
String input = "19100390888";
Pattern pattern = Pattern.compile(regex) //编译正则表达式
Matcher matcher = pattern.matcher(input) //进行匹配
if (matcher.matches()) check = true;
return check;

邮箱验证:前面任意位数非空字符,必须带@,末尾必须有.com或者.cn

匹配式: \w+@\w+\.(com)|(cn)

boolean check = false;
String regex = "\w+@\w+\.(com)|(cn)";
String input = "19100390888";
Pattern pattern = Pattern.compile(regex) //编译正则表达式
Matcher matcher = pattern.matcher(input) //进行匹配
if (matcher.matches()) check = true;
return check;

对字符串进行 匹配,查找,替换,判断。相关推荐

  1. c语言字符串替换有大小写,(C语言)字符串大小写无关查找替换

    [问题描述] 编写程序将一行英文中指定的字符串替换为另一字符串后输出.注意:查找指定字符串时,大小写无关,而且有可能多次出现. [输入形式] 先从标准输入中分行输入两个英文字符串(每个字符串不为空,长 ...

  2. (C语言)字符串大小写无关查找替换

    [问题描述] 编写程序将一行英文中指定的字符串替换为另一字符串后输出.注意:查找指定字符串时,大小写无关,而且有可能多次出现. [输入形式] 先从标准输入中分行输入两个英文字符串(每个字符串不为空,长 ...

  3. oracle 拼接 长度,oracle操作字符串:拼接、替换、截取、查找、长度、判断详解...

    1.拼接字符串 1)可以使用"||"来拼接字符串 select '拼接'||'字符串' as str from dual 2)通过concat()函数实现 select conca ...

  4. oracle截取字符串替换,oracle操作字符串:拼接、替换、截取、查找、长度、判断...

    1.拼接字符串 1)可以使用"||"来拼接字符串 select '拼接'||'字符串' as str from dual 2)通过concat()函数实现 select conca ...

  5. vim查找/替换字符串

    1.:s 命令来替换字符串. :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivia ...

  6. python字符串之查找与替换_Python字符串操作(查找,替换,分割和连接)方法及其使用...

    str 提供了如下常用的执行查找.替换等操作的方法: startswith():判断字符串是否以指定子串开头. endswith():判断字符串是否以指定子串结尾. find():查找指定子串在字符串 ...

  7. python rfind函数用法_Python语法速查:字符串格式简单处理、子串查找与判断方法?...

    这是一篇python基础知识分享型文章,对学习python感兴趣的朋友们可以仔细看看 字符串常用方法 Python3中,字符串全都用Unicode形式,所以省去了很多以前各种转换与声明的麻烦.字符串属 ...

  8. vue替换全部符合’字符串_技术成长日记-Vim实用技巧-4.7查找替换

    1. 普通查找 / 向下查找 ? 向上查找 n 查找下一个目标字符串 N 查找上一个目标字符串 q/ 回溯查找历史,输入该命令后会在状态栏上方显示一个查找历史回溯窗口,如图4.1: 图4.1 回溯查找 ...

  9. shell 字符串变量比对_Linux Shell 字符串操作(长度/查找/替换)详解

    在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk.sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...

最新文章

  1. java 执行字节码_深入理解java:1.2. 字节码执行引擎
  2. 最简洁粗暴版的虚拟用户配置FTP
  3. 【AI白身境】只会用Python?g++,CMake和Makefile了解一下
  4. java map初始化方式_java中Map和List初始化的两种方法
  5. 用doss进入mysql_一键连接给你省了多少事_DOSS 听吧_音频评测-中关村在线
  6. C++ IO库:cmd读写,字符串读写,文件读写,<<重载,标准输出
  7. 创建Maven分布式前台系统架构,写出京动态导航,跨域返Json数据
  8. Android APK签名原理
  9. 软件测试的流程结构图
  10. leetcode_Remove Duplicates from Sorted Array
  11. 华硕固件无线打印机服务器设置,华硕路由器远程打印机LPD设置-Windows.pdf
  12. 毕业论文小论文查重吗?
  13. 基于微信小程序的学生社团管理系统
  14. 微信小程序 JS 遍历对象的属性和值
  15. 口碑订购会员营销网页无法打开,提示网页可能暂时无法连接
  16. pycharm无法消除出现的错误提示的可能解决方案
  17. PTA 查询选修了2门以上课程的学生学号和平均成绩。分数 3
  18. Python输出炫彩颜色字体
  19. 山东的超级计算机,中支槽波动,山东21日将要开启降雨,超级计算机:开始雨比较弱...
  20. 如何将全民K歌的歌曲转成mp3格式

热门文章

  1. 多次点击android版本出现棒棒糖,android – 为前棒棒糖设备创建循环显示
  2. 在python语言中不能作为变量名的是什么_4、 在 Python 中可以使用 if 作为变量名。 (1.0分)_学小易找答案...
  3. 2、运行WordCount程序
  4. 机器学习笔记(十八)——HMM的参数估计
  5. 2020年数字营销与商业增长白皮书
  6. c++计算园的面积与周长
  7. 计算机自动化技术要学什么,【经验分享】PLC学习的5个阶段,自动化工程师看看你属于哪个阶段?...
  8. java的修饰符_java默认的修饰符是什么
  9. 作者:李香菊(1964-),女,江西农业工程职业学院副教授
  10. 【操作系统】独立进程与协作进程