码迷,mamicode.com
首页 > 编程语言 > 详细

Java笔记:正则表达式

时间:2018-03-10 18:45:25      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:end   static   基础   ble   body   display   isp   none   nbsp   

一、基础知识

正则表达式是描述字符序列的一串字符。这种通用的描述被称为模式,可用于在其他字符序列中查找匹配。Java的正则表达式由Pattern和Matcher组成,Pattern用于定义正则表达式,Matcher用于在其他序列中匹配模式。

 

二、语法

正则表达式由常规字符、字符类、通配符及量词构成。

常规字符根据自身进行匹配。

字符类是一组字符,通过在方括号之间放置字符可指定字符类。

通配符可以匹配任意字符。

量词决定表达式将被匹配的次数。

^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
* 匹配前面字符或子表达式零次或多次
+ 匹配前面字符或子表达式一次或多次
? 匹配前面字符或子表达式零次或一次
{n} 匹配前面的字符或子表达式n次
{n,} 匹配前面的字符或子表达式至少n次
{n,m} 匹配前面的字符或子表达式至少n次、至多m次
? 在限定符之后表示匹配模式是非贪心的,匹配尽可能短的字符串。默认的贪心模式匹配尽可能长的字符串。
A|B 匹配A或B
[ABC] 匹配ABC中的任意字符
[^ABC] 匹配非ABC的任意字符
[A-Z] 匹配A-Z内的任意字符

 

 

 

 

 

 

 

 

 

 

 

 

 

三、示例

技术分享图片
import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Solution {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("[a-z]+");
        Matcher matcher = pattern.matcher("Hello World");
        System.out.println(matcher.matches());//不匹配子串

        matcher.reset();
        while (matcher.find()) {//匹配子串
            System.out.println(matcher.start());//获取当前匹配的开头引索
            System.out.println(matcher.end());//获取当前匹配的末尾引索
            System.out.println(matcher.group());//获取最后一个匹配的字符串
        }
        String str = matcher.replaceAll("");
        System.out.println(str);
    }
}
View Code

分割字符串。

技术分享图片
import java.util.Arrays;
import java.util.regex.Pattern;

class Solution {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("[,.!]");
        String[] strings = pattern.split("JetBrains!IntelliJ,IDEA.");
        System.out.println(Arrays.toString(strings));
    }
}
View Code

 

Java笔记:正则表达式

标签:end   static   基础   ble   body   display   isp   none   nbsp   

原文地址:https://www.cnblogs.com/arseneyao/p/8531309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!