[英]How to use regex in java to change prefix and suffix of matching substrings
我想(在Java中)找到字符串中的任何子字符串,以aba
開頭並以aca
結尾,其中它們之間有一個或多個非空格字符。
例如,“ blingblangabablahacablingblang
會找到子串abablahaca
。
然后我想替換每個那些子的,修改的開始,只是b
和年底ca
,但在離開內部blah
,因為它是。
例如,“ blingblangabablahacablingblang
將更改為blingblangbblahcablingblang
。
有沒有什么方法可以使用String.replaceAll()來做到這一點? 原始字符串中將有許多實例要更改。
謝謝你的幫助。
我不知道Java,但正則表達式應該簡單地用'b $ 1ca'替換'aba(。+?)aca'。
你可以嘗試:
myString.replaceAll("aba(\\w*?)aca", "b$1ca") // would also match abaaca, without blah in the middle
要么
myString.replaceAll("aba(\\w+?)aca", "b$1ca") // match onlu if there is a char between aba and aca
試試這個模式: aba[az]*aca
Pattern p = Pattern.compile("aba[a-z]*aca");
Matcher m = p.matcher("blingblangabablahacablingblang");
while (m.find())
System.out.println(">" + m.group() + "<");
如果保證aba
和aca
在給定的字符序列中都是唯一的,那么你可以使用舊的String#replace
而不是正則表達式:
String result = original.replace("aba","b").replace("aca", "ca");
什么是錯誤的簡單if string.startsWith()和string.endsWith()然后替換子串少然后開始和結束,然后重建新的字符串?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.