欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java Matcher匹配頭尾截取替換字符串的案例

 更新時(shí)間:2020年12月03日 11:28:19   作者:常樂(lè)_smile  
這篇文章主要介紹了java Matcher匹配頭尾截取替換字符串的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

在java 編程中,我們常常有這樣的需求:需要將一段字符串內(nèi)的特定字符串,按照一定規(guī)則查找出來(lái)或替換,比如匹配文本開(kāi)頭規(guī)則和結(jié)束規(guī)則。

以下就是Matcher的使用:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
/**
 * @Author changle
 * @Time 17/10/12.
 * @Desc 匹配頭尾截取替換字符串
 * 待替換內(nèi)容:
 * url: jdbc:mysql://${cot.identity.db.ip}:3306/${cot.identity.db.dbname}?useUnicode=true&characterEncoding=UTF8
 * 替換后:
 * url: jdbc:mysql://{{cot.identity.db.ip}}:3306/{{cot.identity.db.dbname}}?useUnicode=true&characterEncoding=UTF8
 */
public class CommonTest {
  public static void main(String[] args) {
    String str = "url: jdbc:mysql://${cot.identity.db.ip}:3306/${cot.identity.db.dbname}?useUnicode=true&characterEncoding=UTF8";
    if (str.contains("${cot.")) {
      Pattern leftpattern = Pattern.compile("\\$\\{");
      Matcher leftmatcher = leftpattern.matcher(str);
      Pattern rightpattern = Pattern.compile("}");
      Matcher rightmatcher = rightpattern.matcher(str);
      int begin = 0;
      List<String> foundKeys = new ArrayList<>();
      while (leftmatcher.find(begin)) {
        rightmatcher.find(leftmatcher.start());
        String configKey = str.substring(leftmatcher.start(), rightmatcher.end());
        System.out.println(configKey.replace("${", "{{"));
        foundKeys.add(configKey);
        begin = rightmatcher.end();
      }
      System.out.println("原內(nèi)容:"+str);
      for (String foundkey : foundKeys){
        str = str.replace(foundkey, foundkey.replace("${cot.","{{cot.").replace("}", "}}").replace("-","_"));
      }
      System.out.println("替換后:"+str);
    }
  }
}

補(bǔ)充知識(shí):JAVA正則表達(dá)式 Pattern和Matcher,用正則替換對(duì)應(yīng)的內(nèi)容

需求:

過(guò)濾樣式,比如:

<p><span style="font-size: larger">鉛筆機(jī)一個(gè)</span></p>

過(guò)濾后結(jié)果= 鉛筆機(jī)一個(gè)

public static void main(String[] args) { 
  String skuName="<p><span style='font-size: larger'>鉛筆機(jī)一個(gè)</span></p>";
  // 生成一個(gè)Pattern,同時(shí)編譯一個(gè)正則表達(dá)式
  Pattern pattern = Pattern.compile("<(.[^>]*)>");
  //匹配字符串
  Matcher matcher = pattern.matcher(skuName);
  //把符合正則的數(shù)據(jù)替換成""
  skuName=matcher.replaceAll("");
  System.out.println("替換以后結(jié)果=====》"+skuName);
}

輸出結(jié)果:

替換以后結(jié)果=====》鉛筆機(jī)一個(gè)

說(shuō)明:

1.Pattern類用于創(chuàng)建一個(gè)正則表達(dá)式,也可以說(shuō)創(chuàng)建一個(gè)匹配模式,它的構(gòu)造方法是私有的,不可以直接創(chuàng)建,但可以通過(guò)Pattern.complie(String regex)簡(jiǎn)單工廠方法創(chuàng)建一個(gè)正則表達(dá)式。

2.Pattern.matcher(String regex,CharSequence input)是一個(gè)靜態(tài)方法,用于快速匹配字符串,該方法適合用于只匹配一次,且匹配全部字符串。

以上這篇java Matcher匹配頭尾截取替換字符串的案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論