从头认识java-11.4 正则表达式(1)-感性认知

这一章节我们来感受一下正则表达式。

正则表达式就是以某种形式来描述字符串。

注意:在java里面正则表达式的反斜杠需要"\\"来描述,如果是普通的反斜杠,需要“\\\\”来描述。

在字符串中,可以使用正则的方法有几个,分别是matches、split还有replaceAll

1.matches方法

下面只是举一些例子,让大家感觉一下正在表达式。

package com.ray.ch11;

public class Test {

	public static void main(String[] args) {
		System.out.println("-21".matches("-?\\d+"));
		System.out.println("-21".matches("-?\\d"));
		System.out.println("+21".matches("\\+?\\d+"));
		System.out.println("+21".matches("(-|\\+)?\\d+"));
	}
}

输出:

true
false
true
true

解释:

-?表示一个带负号的数字

\d表示一个个位数的整数

\d+表示多位数字的整数

|表示或者

\\+表示加号,在正则表达式中,加号需要在前面加上反斜杠

2.split方法

split可以接受字符串,也可以接受正则表达式。

package com.ray.ch11;

import java.util.Arrays;

public class Test {

	public static void main(String[] args) {
		System.out.println(Arrays.toString("-21a333adg".split("-?\\d")));
		System.out.println(Arrays.toString("-21a333adg".split("\\d")));
		System.out.println(Arrays.toString("-21a333adg".split("\\d\\d")));
		System.out.println(Arrays.toString("-21a333adg".split("-\\d\\d")));
		System.out.println(Arrays.toString("-21a333adg".split("a")));
		System.out.println(Arrays.toString("-21a333adg".split("d")));
		System.out.println(Arrays.toString("-21a333adg".split("g")));

	}
}

输出:

[, , a, , , adg]
[-, , a, , , adg]
[-, a, 3adg]
[, a333adg]
[-21, 333, dg]
[-21a333a, g]
[-21a333ad]

3.replaceAll方法

replaceAll可以接受字符串,也可以接受正则表达式。

package com.ray.ch11;

public class Test {

	public static void main(String[] args) {
		System.out.println("-21a333adg".replaceAll("-?\\d", "0"));
		System.out.println("-21a333adg".replaceAll("\\d", "0"));
		System.out.println("-21a333adg".replaceAll("\\d\\d", "0"));
		System.out.println("-21a333adg".replaceAll("-\\d\\d", "0"));
		System.out.println("-21a333adg".replaceAll("a", "0"));
		System.out.println("-21a333adg".replaceAll("d", "0"));
		System.out.println("-21a333adg".replaceAll("g", "0"));

	}
}

输出:

00a000adg
-00a000adg
-0a03adg
0a333adg
-2103330dg
-21a333a0g
-21a333ad0

上面的方法前面四个是使用正则表达式,后面的三个只是简单的接受字符串。

总结:这一章节主要是举几个例子让大家对正则表达式有一个感性的认知,以及展示了字符串里面的三个能够接受正则的方法。

这一章节就到这里,谢谢。

-----------------------------------

目录

时间: 2024-12-14 11:57:57

从头认识java-11.4 正则表达式(1)-感性认知的相关文章

[Java]#从头学Java# Java大整数相加

重操旧业,再温Java,写了个大整数相乘先回顾回顾基本知识.算法.效率什么的都没怎么考虑,就纯粹实现功能而已. 先上代码: 1 package com.tacyeh.common; 2 3 public class MyMath { 4 5 public static String BigNumSum(String... n) { 6 int length = n.length; 7 StringBuilder result = new StringBuilder(); 8 //这里判断其实不需

Java编程:正则表达式判断邮箱及电话号码是否有效

/** * 正则判断邮箱及电话号码是否有效 * @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入你的邮箱:");  String email = sc.next();   System.out.println("请输入你的电话号码:");      String phone = sc.

java 中的正则表达式

一. 什么是正则表达式? 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”).模式描述在搜索文本时要匹配的一个或多个字符串. 二.正则表达式语法参考: https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx.    三.  正则表达式规则的例子: /^(/d{3}-|/d{4}-)?(/d{8}|/d{7})?$/    //国内电话 /^[1-9]*[1-9][0-9]*$/  

9.JAVA中的正则表达式

一.JAVA中的正则表达式 1.概念:以某种特定的方式描述字符串 1.Java中正则表达式的规则 ?          #{0,1}-?有一个-或者没有 \\           #表示一个”\" \\d         #表示一个数字 \\D       #非数字 f\\W+    #表示f开头的单词 \\W       #表示一个非单词字符 \\w       #表示一个单词字符[0-9A-Za-z-]包含’-’ \\s        #空白符号 \\S       #非空白符号 (-|\\

JAVA中的正则表达式--待续

1.关于“\”,在JAVA中的正则表达式中的不同: 在其他语言中"\\"表示为:我想要在正则表达式中插入一个普通的反斜杠: 在Java中“\\”表示为:我想要插入一个正则表达式反斜杠: eg:验证整数的正则表达式为\\d; 如果想要插入一个反斜杠则为:\\\\ : 如果是换行符和制表符则为\n 和\t : 2.特殊字符 Greedy 数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X

Python for Informatics 第11章 正则表达式(二)

忙碌一天,晚上终于有静下来的时间,继续昨天的工作. 11.1 正则表达式的字符匹配 我们可以用许多其它的特殊字符创建更加强大的正则表达式.最常用的特殊符号是可匹配任何字符的句号(".").在以下的示例中,正则表达式”F..m:“将匹配”From:”,“Fxxm:",”F12m:“,或者”[email protected]:“等类似字符串,因为表达式中间的句号可匹配任何字符. 1 import re 2 hand = open('mbox-short.txt') 3 for l

Java杂谈之正则表达式--日期,邮箱,数字验证

当我们判断数据的格式是否符合规范的时候,一般会采用两种方式: 一种是if...else不断的嵌套或者if...else并排判断的方式 (这两者代表以条件正确为前提还是以条件错误为前提的) 另一种就是正则表示式. 字符串匹配给正则表达式:boolean matches(Stirng regex) 用法:String.matches(regex) 当然可以说if...else是万能的,正则表达式是有局限的,不能过分依赖,它只是解决问 题的一种手段而已,并不是必要的. 但往往用正确的使用正则表达式能让

在java中使用正则表达式注意的地方

1. 对^与$的理解 通常我们会通过类似Matcher matcher = Pattern.compile(regex).matcher(string);的代码去拿到一个Matcher对象.这种情况下regex中的^与$匹配的是整个待匹配串string的开头与结尾.而要使^与$去匹配每一行的开始与结尾,则要使用Pattern.MULTILINE.即:Matcher matcher = Pattern.compile(regex, Pattern.MULTILINE).matcher(string

Java基础巩固--正则表达式

本篇文章是学习尚学堂的关于正则表达式的视频教程时,所做的笔记.供广大编程爱好者学习之用,也留给日后自己复习使用! 1.为什么要有正则表达式? 正则表达式可以方便的对数据进行匹配,可以进行更加复杂的字符串验证.拆分.替换功能. 例如,现在要判断一个字符串是否全部由数字构成,若不使用正则表达式,代码如下: public static boolean isAllNum(String string){         char[] charArr = string.toCharArray();     

java HTML字符串正则表达式使用工具类

原文:java HTML字符串正则表达式使用工具类 代码下载地址:http://www.zuidaima.com/share/1550463453416448.htm HTML相关的正则表达式工具类 包括过滤HTML标记,转换HTML标记,替换特定HTML标记 package com.zuidaima.common.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * <p> * Title: H