> Java > java지도 시간 > Java에서 정규식을 사용하는 방법은 무엇입니까?

Java에서 정규식을 사용하는 방법은 무엇입니까?

coldplay.xixi
풀어 주다: 2020-10-29 11:22:02
원래의
4075명이 탐색했습니다.

java正则表达式用法:1、使用Pattern类进行字符串的拆分,使用的方法是【String[] split(CharSequence input)】;2、使用Matcher类进行字符串的验证和替换。

Java에서 정규식을 사용하는 방법은 무엇입니까?

相关免费学习推荐:java基础教程

java正则表达式用法:

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

*下面是java中正则表达式常用的语法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

字符的取值范围

1.[abc] : 表示可

 

3.[a-zA-Z]: 表示是英文字母

4.[0-9]:表示是数字

 

简洁的字符表示

.:匹配任意的字符

\d:表示数字

\D:表示非数字

\s:表示由空字符组成,[ \t\n\r\x\f]

\S:表示由非空字符组成,[^\s]

\w:表示字母、数字、下划线,[a-zA-Z0-9_]

\W:表示不是由字母、数字、下划线组成

 

数量表达式

1.?: 表示出现0次或1次

2.+: 表示出现1次或多次

3.*: 表示出现0次、1次或多次

4.{n}:表示出现n次

5.{n,m}:表示出现n~m次

6.{n,}:表示出现n次或n次以上

 

逻辑表达式

1.XY: 表示X后面跟着Y,这里X和Y分别是正则表达式的一部分

2.X|Y:表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f

3.(X):子表达式,将X看做是一个整体

 

java中提供了两个类来支持正则表达式的操作

分别是java.util.regex下的Pattern类和Matcher类

使用Pattern类进行字符串的拆分,使用的方法是String[] split(CharSequence input)

使用Matcher类进行字符串的验证和替换,

匹配使用的方法是boolean matches()

替换使用的方法是 String replaceAll(String replacement)

 

Pattern类的构造方法是私有的

所以我们使用Pattern p = Pattern.compile("a*b");进行实例化

Matcher类的实例化依赖Pattern类的对象Matcher m = p.matcher("aaaaab");

 

在实际的开发中,为了方便我们很少直接使用Pattern类或Matcher类,而是使用String类下的方法

验证:boolean matches(String regex)

拆分: String[] split(String regex)

替换: String replaceAll(String regex, String replacement)

로그인 후 복사

 下面是正则表达式的简单使用:

1、Test01.java :使用正则表达式使代码变得非常简洁。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

1 package test_regex;

 2 public class Test01 {

 3     public static void main(String[] args){

 4         String str = "1234567";

 5 //        char[] c = str.toCharArray();

 6 //        boolean b = true;

 7 //        for(char c1:c){

 8 //            if(!(c1>=&#39;0&#39;&&c1<=&#39;9&#39;)){

 9 //                b = false;

10 //                break;

11 //            }

12 //        }

13 //        System.out.println(b);

14

15         String regex = "\\d+";

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

17     }

18 }

로그인 후 복사

2、TestMatcher01.java(Matcher类的使用,用于字符串的验证)

1

2

3

4

5

6

7

8

9

10

11

12

13

1 package test_regex;

 2 import java.util.regex.Pattern;

 3 import java.util.regex.Matcher;

 4 public class TestMatcher01 {

 5     public static void main(String[] args){

 6         String str = "1234567abc";

 7         String regex = "\\w{10,}";

 8 //        Pattern pat = Pattern.compile(regex);

 9 //        Matcher mat = pat.matcher(str);

10 //        System.out.println(mat.matches());

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

12     }

13 }

로그인 후 복사

3、TestMatcher02.java(Matcher类的使用,用于字符串的替换)

1

2

3

4

5

6

7

8

9

10

11

12

13

1 package test_regex;

 2 import java.util.regex.Pattern;

 3 import java.util.regex.Matcher;

 4 public class TestMatcher02 {

 5     public static void main(String[] args){

 6         String str = "12Y34h56dAd7";

 7         String regex = "[a-zA-Z]+";

 8 //        Pattern pat = Pattern.compile(regex);

 9 //        Matcher mat = pat.matcher(str);

10 //        System.out.println(mat.replaceAll(":"));

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

12     }

13 }

로그인 후 복사

4、TestPattern01.java(Pattern类的使用,用于字符串的拆分)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1 package test_regex;

 2 import java.util.regex.Pattern;

 3 public class TestPattern01 {

 4     public static void main(String[] args){

 5         String str = "Tom:30|Jerry:20|Bob:25";

 6         String regex = "\\|";

 7 //        Pattern pat = Pattern.compile(regex);

 8 //        String[] arr = pat.split(str);

 9         String[] arr = str.split(regex);

10         for(String s:arr){

11             System.out.println(s);

12         }

13     }

14 }

로그인 후 복사

5、TestRegex01.java(大概判断一个邮箱地址是否合法)

1

2

3

4

5

6

7

8

9

10

1 package test_regex;

 2 public class TestRegex01 {

 3     //判断一个邮箱地址是否合法

 4     public static void main(String[] args){

 5         //这里默认邮箱的后缀是.com或.net.cn

 6         String str = "aa@aa.net.cn";

 7         String regex = "\\w+@\\w+\\.(com|net.cn)";

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

 9     }

10 }

로그인 후 복사

위 내용은 Java에서 정규식을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿