Regex
Regex默認爲貪婪匹配
加?
來去除貪心匹配(最大的匹配範圍)
原文:
My name is albert,<font color="red">Hello</font><font color="black">World,</font>It's i want to say.
去除匹配regex的文本
String.splite(regex)分割,得到數組
["My name is albert,"; "It's i want to say"]
// 正則表達式1
<font.*>.*</font>
// 匹配內容
Hello</font><font color="black">World
//正則表達式2
<font.*?>.*?</font>
// 匹配內容
<font color="red">Hello</font>
<font color="black">World,</font>
提取匹配regex中的文本
採用Pattern(regex)
一次Pattern匹配內有多個group,group爲括號內(regex)
匹配的regex
一個文本,可以有多個Pattern匹配,一個Pattern內可以有多個group匹配
val contentPattern: Pattern = Pattern.compile("<font.*?>(.*?)</font>")
val specialContentList = ArrayList<CharSequence>()
val contentMatcher: Matcher = contentPattern.matcher(polish)
while (contentMatcher.find()) {
contentMatcher.group(1)?.let {
specialContentList.add(it)
}
}
//第一次pattern匹配:
//group(0) <font color="red">Hello</font>
//group(1) Hello
//第二次pattern匹配:
//group(0) <font color="black">World,</font>
//group(1) World,
find方法迭代到下一個 pattern
group爲本次匹配regex的pattern(模式),group對應從左側數 第幾個匹配()內regex的字符串,