java Matcher匹配頭尾擷取替換字串的案例
阿新 • • 發佈:2020-12-03
在java 程式設計中,我們常常有這樣的需求:需要將一段字串內的特定字串,按照一定規則查找出來或替換,比如匹配文字開頭規則和結束規則。
以下就是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 匹配頭尾擷取替換字串 * 待替換內容: * 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("原內容:"+str); for (String foundkey : foundKeys){ str = str.replace(foundkey,foundkey.replace("${cot.","{{cot.").replace("}","}}").replace("-","_")); } System.out.println("替換後:"+str); } } }
補充知識:JAVA正則表示式 Pattern和Matcher,用正則替換對應的內容
需求:
過濾樣式,比如:
<p><span style="font-size: larger">鉛筆機一個</span></p>
過濾後結果= 鉛筆機一個
public static void main(String[] args) { String skuName="<p><span style='font-size: larger'>鉛筆機一個</span></p>"; // 生成一個Pattern,同時編譯一個正則表示式 Pattern pattern = Pattern.compile("<(.[^>]*)>"); //匹配字串 Matcher matcher = pattern.matcher(skuName); //把符合正則的資料替換成"" skuName=matcher.replaceAll(""); System.out.println("替換以後結果=====》"+skuName); }
輸出結果:
替換以後結果=====》鉛筆機一個
說明:
1.Pattern類用於建立一個正則表示式,也可以說建立一個匹配模式,它的構造方法是私有的,不可以直接建立,但可以通過Pattern.complie(String regex)簡單工廠方法建立一個正則表示式。
2.Pattern.matcher(String regex,CharSequence input)是一個靜態方法,用於快速匹配字串,該方法適合用於只匹配一次,且匹配全部字串。
以上這篇java Matcher匹配頭尾擷取替換字串的案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。