用正则表达式进行字符串校验,截取十分方便,项目开发中灵活的使用正则表达式能让你的代码简洁优雅并且不易出错。在实际的应用中,掌握以下几点知识就可以应付绝大多数的开发场景了。

1、 字符串开始结束匹配:^$。

^abc$完全匹配字符串abc。

2、 特定类型字符匹配:数字\d,数字字母下划线\w,空格\s,任意字符.。

3、 重复匹配:重复0次或1次?,重复1次及以上+,重复0次及以上*,重复m到n次{m,n},重复m次以上{m,}。

\d+表示有一个或多个数字组成的字符串,比如0,10,110。

4、 单个字符或[],|。

[ab]表示a或b,a|b表示a或b。

5、 字符串或(|)。

(ab|bc)表示ab或者bc。

6、 非[^]。

[^a]表示不是a的一个字符;[^ab]表示不是a且不是b的一个字符;[^ab]+表示一个或多个字符,且每个字符都不是a或b。

Java中,String.matches(regex)进行字符串正则表达式校验;String.replaceAll()进行正则表达式替换;Pattern,Matcher则可以进行正则表达式匹配,查找,替换等一系列操作。下面是代码实例:

package com.coshaho.learn.reg;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegexTest

{

public static void main(String[] args)

{

// 重复

String regex = "^\\s*\\d+{1,3}\\w+ .?$";

String str = " 110hkx_ @";

System.out.println(str.matches(regex));

// 字符或

regex = "^[abc]$"; // 等价于^a|b|c$

str = "b";

System.out.println(str.matches(regex));

// 字符串或

regex = "^(ab|cd)$";

str = "ab";

System.out.println(str.matches(regex));

// 非

regex = "^[^abc]$";

str = "d";

System.out.println(str.matches(regex));

regex = "\\[([^\\[\\]]+)\\]\\.\\[([^\\[\\]]+)\\]";

str = "[device].[cpu] + [interface].[tranffic] >= 2";

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(str);

while(matcher.find())

{

System.out.println(matcher.group());

if(2 == matcher.groupCount())

{

System.out.println(matcher.group(1));

System.out.println(matcher.group(2));

}

}

regex = "\\d+";

str = "abc123def456hijk789xyz";

System.out.println(str.replaceAll(regex, " "));

}

}

/**

输出值

true

true

true

true

[device].[cpu]

device

cpu

[interface].[tranffic]

interface

tranffic

abc def hijk xyz

**/

java正则表达式的使用_java正则表达式使用相关推荐

  1. java qq验证手机号码_java正则表达式表单验证类工具类(验证邮箱、手机号码、qq号码等)...

    package util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 使用正则表达式进行表单验证 * ...

  2. java 数字范围正则_Java 正则表达式

    正则表达式 概述 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. java.util.regex 包主要包括以下三 ...

  3. java正则表达式 匹配%号_java正则表达式匹配带有括号的电话号为什么匹配不上...

    最近在学习正则表达式,尝试着同事匹配三种不同的电话号,类似如下: (012)-79461234 012-79461234 01279461234 我写的匹配方式: \(?0\d{2}[) -]?\d{ ...

  4. java正则表达式的用法_Java 正则表达式的使用

    Java 正则表达式的使用 1:正则表达式语法大全 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如,"n"匹配字符"n".&quo ...

  5. java正则表达式所有字符串_java正则表达式获取字符串中所有匹配的内容

    在java中,很多时候需要解析一段字符串获取符合条件的所有匹配项.下面例子获取一段字符串中满足   ${字母数字}  条件的字符串的代码 ​ import java.util.List; import ...

  6. java 正则 任意字符_Java正则表达式 去掉括号内任意字符

    前言: 刚开始以为 (.*) 就是括号内任意字符了,试了不行. 错误点 1.括号需要转义(是正则表达式关键字) 2.不是任意字符,而是 除了右括号的任意字符 String content = &quo ...

  7. java正则表达式用法示例_Java正则表达式教程及示例

    java正则表达式用法示例 当我开始使用Java时,正则表达式对我来说是一场噩梦. 本教程旨在帮助您掌握Java正则表达式,并让我定期返回以刷新我的正则表达式学习. 什么是正则表达式? 正则表达式定义 ...

  8. java regex match 替换_java正则表达式四种常用的处理方式(匹配、分割、替代、获取)...

    java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下 package test; import java.util.regex.Matcher; import ja ...

  9. java 正则判断二进制_java正则表达式

    1.java正则表达式 \\d表示数字  \\d+表示一到多个数字  \\d*表示匹配一个数字零次或者多次  \\d?匹配一个数字零次或一次 \w 等价于[A-Za-z0-9]  \W等价于[^A-Z ...

最新文章

  1. select语句for update---转载
  2. 全志V3S代码中的bug之1
  3. Python中a和a[:]有什么区别?
  4. 初识Mysql(part19)--我需要知道的3条Mysql语句之组合查询
  5. 输出整形变量语句_Python合集之Python变量
  6. C中不安全的函数以解决办法汇总
  7. sitck-breaking折棍法理解
  8. 【破损识别】基于matlab GUI机器视觉+SVM玉米种子破损识别(带面板)【含Matlab源码 1651期】
  9. 并发编程的挑战——sychronized锁
  10. java考试知识点整理
  11. 任务管理器已被管理员禁用win10
  12. SEO 基础知识遇上圣诞节
  13. Vasya the Hipster
  14. 死锁的处理策略—预防死锁、避免死锁、检测和解除死锁
  15. 很多人说单片机很简单。但本专业学生都认为单片机是最难学的课程。为什么学起来都这么吃力呢?
  16. 3D模型欣赏:MR4概念机器人 材质处理细致,金属质感细致
  17. 软件测试:三角形问题
  18. 【独立版】翻牌领红包系统一物一码仿口味王验证码抽奖码得红包追溯码源码程序无加密
  19. chrome android 功能大全,Android版Chrome 55 大更新,多个新功能袭来
  20. 机器视觉 边缘检测算子

热门文章

  1. Spring3.1新属性管理API:PropertySource、Environment、Profile
  2. spring boot 1.5.4 之监控Actuator(十四)
  3. 在SaaS领域,单纯的免费策略根本行不通!
  4. Rust即将发布1.0版本,Go持续获得关注:如何在新生语言之间做出抉择
  5. Flex Builder 开发语言切换问题
  6. NYOJ-139 我排第几个
  7. 请教个问题,ajax.net 的效率如何
  8. 计算机考研379分能进复试吗,考研423分复试被刷,因低级错误错失985大学,这种教训非常深刻...
  9. java md5加密解密_技术09期:数据安全之加密与实现
  10. mysql 单列转换为行,mysql行转换为列