亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java 中使用正則表達式的方法

發布時間:2020-11-18 15:41:34 來源:億速云 閱讀:155 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關Java 中使用正則表達式的方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

使用

RegexString.with(string).pattern(pattern).start() + 后續操作(matches,find或者是replace)

源碼

package com;

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

/**
 * @author YouXianMing1987@iCloud.com 用于簡化處理正則表達式
 */
public class RegexString {

  private String string;
  private Pattern pattern;
  private Matcher matcher;

  ////////////////////// Constructor //////////////////////

  /**
   * 正則表達式對象
   * 
   * @param str
   *      初始化用的字符串
   */
  public RegexString(String str) {
    setString(Objects.requireNonNull(str));
  }

  ////////////////////// Normal Method //////////////////////

  /**
   * 設置正則表達式的pattern
   * 
   * @param regex
   *      正則表達式語句
   * @return RegexString
   */
  public RegexString pattern(String regex) {
    setPattern(Pattern.compile(regex));
    return this;
  }

  /**
   * 設置正則表達式的pattern
   * 
   * @param regex
   *      正則表達式語句
   * @param flags
   *      正則表達式flag值
   * @return RegexString
   */
  public RegexString pattern(String regex, int flags) {
    setPattern(Pattern.compile(regex, flags));
    return this;
  }

  /**
   * 正則表達式對象開始匹配(設置完pattern后需要自行此語句才能做后續操作)
   * 
   * @return RegexString
   */
  public RegexString start() {
    setMatcher(pattern.matcher(string));
    return this;
  }

  /**
   * 進行文本替換
   * 
   * @param replacement
   *      用來替換的文本
   * @return 替換后的字符串
   */
  public String replace(String replacement) {
    return getMatcher().replaceAll(replacement);
  }

  /**
   * 判斷是否匹配(一次性匹配全部文本,不分步)
   * 
   * @return 匹配了返回true,沒有匹配返回false.
   */
  public boolean matches() {
    return getMatcher().matches();
  }

  /**
   * 判斷是否匹配(分步匹配文本,請結合while循環使用)
   * 
   * @return 找到了返回true,沒有找到返回false.
   */
  public boolean find() {
    return getMatcher().find();
  }

  /**
   * find()操作成功后,可以通過matchString()獲取匹配的字符串
   * 
   * @return 匹配的字符串
   */
  public String matchString() {
    return getMatcher().group();
  }

  /**
   * find()操作成功后,可以通過matchStart()獲取匹配的起始位置
   * 
   * @return 匹配的起始位置
   */
  public int matchStart() {
    return getMatcher().start();
  }

  /**
   * find()操作成功后,可以通過matchEnd()獲取匹配的結束位置
   * 
   * @return 匹配的起始位置
   */
  public int matchEnd() {
    return getMatcher().end();
  }

  ////////////////////// Static Method //////////////////////

  /**
   * [靜態方法] 便利構造器
   * 
   * @param str
   *      初始化用的字符串
   * @return RegexString
   */
  public static RegexString with(String str) {
    return new RegexString(str);
  }

  ////////////////////// Getter & Setter //////////////////////

  public String getString() {
    return string;
  }

  public void setString(String string) {
    this.string = string;
  }

  public Pattern getPattern() {
    return pattern;
  }

  public void setPattern(Pattern pattern) {
    this.pattern = pattern;
  }

  public Matcher getMatcher() {
    return matcher;
  }
  public void setMatcher(Matcher matcher) {
    this.matcher = matcher;
  }
}

示例

package com;

public class Main {

  public static void main(String args[]) {

    // 查找文本
    {
      String src = "This is my small example string which I'm going to use for pattern matching.";
      RegexString string = RegexString.with(src).pattern("\\w+").start();
      while (string.find()) {
        System.out.println(string.matchStart() + "," + string.matchEnd() + " : " + string.matchString());
      }
    }

    // 匹配
    {
      String src = "This is my small example string which I'm going to use for pattern matching.";
      if (RegexString.with(src).pattern("^This.+$").start().matches()) {
        System.out.println("Yes");
      }
    }

    // 替換文本
    {
      String src = "This is my small example string which I'm going to use for pattern matching.";
      System.out.println(RegexString.with(src).pattern("\\w+").start().replace("Regex"));
    }
    // 去掉字符串首尾的空格,以及字符串中間多余的字符串
    {
      String src = "  This  is  my small example string  which I'm  going to  use for pattern matching.   ";
      String tmp = RegexString.with(src).pattern("^\\s+|\\s+$").start().replace("");
      String des = RegexString.with(tmp).pattern("\\s+").start().replace(" ");
      System.out.println("\"" + des + "\"");
    }
  }
}

以上就是Java 中使用正則表達式的方法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

拉萨市| 清原| 海盐县| 昭苏县| 安达市| 延津县| 左云县| 达拉特旗| 同江市| 南投市| 南宫市| 延边| 常宁市| 汨罗市| 斗六市| 水城县| 临泉县| 原平市| 桂阳县| 乐清市| 汝城县| 达尔| 南乐县| 卓尼县| 连江县| 仁化县| 繁昌县| 西峡县| 北海市| 平果县| 江陵县| 沂源县| 五河县| 武宁县| 和硕县| 定兴县| 仙游县| 山阳县| 余干县| 朔州市| 石渠县|