zoukankan      html  css  js  c++  java
  • Regex阅读笔记(五)java操作篇

     首先一个demo程序

    Java的正则表达式包为java.util.regex,主要是使用其中的Pattern和Matcher.

    groupCount方法时候都可调用,而大多数方法都必须在匹配尝试成功之后才可调用.

    主要的方法有:

    boolean find()

    返回的boolean值表示是否能找到匹配,如果有多次调用,每次都在上次的匹配位置之后尝试新的匹配.

    public class Regex {
        public static void main(String[] args){
            String regex = "\w+";
            Pattern pattern = Pattern.compile(regex);
            String str = "this is my";
            Matcher matcher = pattern.matcher(str);
            while(matcher.find()){
                String matchedText = matcher.group();
                int matchedFrom = matcher.start();
                int matchedTo = matcher.end();
                System.out.println(matchedFrom+" "+matchedTo);
                System.out.println(matchedText);
            }
    

    boolean find(int offset)

    如果指定了整型参数,匹配尝试会从距离目标字符串开头offset个字符的位置开始,如果超出会报错,这种形式的find不会受当前检索范围的影响.

    boolean matches()

    返回正则表达式是否能完全匹配目标字符串中检索范围的那段文本.

    boolean lookingAt()

    返回正则表达式能否在当前目标字符串的当前检索范围中找到匹配.

    group()

    返回前一次应用正则表达式的匹配文本.

    groupCount()

    返回捕获型括号的数目

    group(int num)

    返回对应捕获型括号匹配的内容,group(0)就等于group()

    输出分别是:

    this is
    2
    this
    is

    int start(int num)

    返回编号为num的捕获型括号所匹配文本的起点在目标字符串中的绝对偏移值.

    int start()

    返回整个匹配起点的绝对便宜值,就相当于start(0)

    int end 与 int end(int num)对应于start

    replace示例:

    String myText = "Before Java 1.5 was Java 1.4.2 After Java 1.5 is Java 1.6";
    String myRegex = "\bJava\s*1\.([56])\b";
    Pattern p = Pattern.compile(myRegex);
    Matcher m = p.matcher(myText);
    System.out.println(m.replaceAll("Java $1.0"));
    

     如果只需要替换第一次出现的文本,可以使用replaceFirsr而不是replaceAll.此外明确知道目标字符串只存在一个匹配时,使用replacrFirst可以提高 效率.

  • 相关阅读:
    ASP.NET CORE MVC验证码
    高效工作必备黑科技软件和网站
    asp.net core 新建area使用asp-action,asp-controller不管用
    add-migration : 无法将“add-migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次
    entity framework core + SQLite Error 1: 'no such table: Blogs'.
    abp去掉AbpUser中的Name,Surname
    PIE SDK去相关拉伸
    PIE SDK频率域滤波
    PIE SDK均值滤波
    PIE SDK聚类
  • 原文地址:https://www.cnblogs.com/tuifeideyouran/p/4229504.html
Copyright © 2011-2022 走看看