首页 > 其他分享 >7.29

7.29

时间:2023-07-29 20:13:30浏览次数:38  
标签:7.29 正则表达式 Pattern Matcher cat 对象 matcher

Java 正则表达式

正则表达式定义了字符串的模式。

正则表达式可以用来搜索、编辑或处理文本。

正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。

正则表达式实例

一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。

.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。

 

Java 正则表达式和 Perl 的是最为相似的。

java.util.regex 包主要包括以下三个类:

  • Pattern 类:

    pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。

  • Matcher 类:

    Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

  • PatternSyntaxException:

    PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

捕获组

捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。

例如,正则表达式 (dog) 创建了单一分组,组里包含"d","o",和"g"。

捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:

  • ((A)(B(C)))

  • (A)

  • (B(C))

  • (C)

可以通过调用 matcher 对象的 groupCount 方法来查看表达式有多少个分组。groupCount 方法返回一个 int 值,表示matcher对象当前有多个捕获组。

还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在 groupCount 的返回值中。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexMatches
{
private static final String REGEX = "\\bcat\\b";
private static final String INPUT =
"cat cat cat cattie cat";

public static void main( String[] args ){
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // 获取 matcher 对象
int count = 0;

while(m.find()) {
count++;
System.out.println("Match number "+count);
System.out.println("start(): "+m.start());
System.out.println("end(): "+m.end());
}
}
}

标签:7.29,正则表达式,Pattern,Matcher,cat,对象,matcher
From: https://www.cnblogs.com/dmx-03/p/17590373.html

相关文章

  • 2023.7.29-假期周进度报告
    本周(7.23-7.29)主要进行休息。下周准备进行天道的观看。周日,在家进行休息,完成了在家进行休息,遇到了下周准备做什么的问题,解决方法是下周的事情下周再进行考虑。周一,在家进行休息,完成了在家的休息,遇到了家里没人给我做午饭的问题,解决方法是午饭随便吃点就行。周二,进行上周学习的......
  • 7.23-7.29
    7.23今日任务:阅读《大道至简》(完成)复习高数(完成)今日听力练习(完成)今日六级单词(完成)7.24今日任务:继续学习Java(完成)今日pta练习(完成)今日听力练习(完成)今日六级单词(完成)7.25今日任务:阅读《大道至简》(完成)准备旅游7.25-7.29同家人旅游,大概八月初回来期间阅读《大道至......
  • 暑假周记(7.29)
    BigInteger适合保存比较大的整形BigDecimal适合保存精度更高的浮点型(小数)//1.在对BigInteger进行加减乘除的时候,需要使用对应的方法,不能直接进行+-*///2.可以创建一个要操作的BigInteger然后进行相应操作BigIntegeradd=bigInteger.add(bigInteger2);System.out.......
  • 2023.7.29
    今天周六了,早上吃完面继续睡了一会儿又起来打了会儿游戏,感觉有些无聊,下午和爸爸去水库钓大鱼,老爸的工友吊起来个10多斤的翘嘴,我下巴都惊掉了,胳膊大小的鱼啊,老爸也没钓到几条鱼,就回家了,晚上水煮鱼吃完就开始学习java了,今天晚上在玩一会儿就休息把。......
  • 7.29 后记
    T1简单题,筛的时候记点东西T2筛完预处理下每个数最大质因数,然后暴力找路径就行T3分段打表可过,每段长\(2\times10^5\)差不多就过了正解:考虑贡献,每个因数\(i\)出现了\(\frac{n}{i}\)次T4下午......
  • 7.29日(活在当下,感受现在)
      今天和朋友谈了心,谈了对未来的想法,我想要什么?我能做什么?说实话,我很迷茫,我的未来充满着不确定性,谈话中我们聊到,你所有的迷茫焦虑都来源于你现在想要的太多,而现在的你并没有实现这个梦想的能力,此时你就陷入了一个死循环,拼命的想改变,却没有改变的能力,就只能不断的内耗自......
  • 7.29 day6数学
    如果没问题就是300T1线性筛里,每个数都会被他最小的质因数筛到,令\(f(x)=[x\%p==0]\quadp\indangerous\)这显然是个完全积性函数,线性筛即可时间复杂度:\(O(n)\)T2考虑这棵树实质上是一个以1为根,边权为大于父亲边权的质数,节点值则为到根路径上边权累乘那么我们要求x,y之间......