|
package com.example.androidkotlindemo2.patternmatcher
import android.graphics.Color
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableString
import android.text.style.BackgroundColorSpan
import android.text.style.ForegroundColorSpan
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.example.androidkotlindemo2.R
import com.example.androidkotlindemo2.utils.LogUtils
import java.util.regex.Pattern
/**
* Author : wn
* Email : maoning20080809@163.com
* Date : 2025/10/12 10:34
* Description : 正则表达式 - 识别日期,年月日
*/
class PatternMatcherMainActivity : AppCompatActivity(){
var resultTextView : TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.pattern_matcher_main)
resultTextView = findViewById<TextView>(R.id.pattern_matcher_result)
test()
}
private fun test(){
val regexStr = resources.getString(R.string.date_regex)
val matcherStr = "账2025年08月08日啊,我2025年8月8日的,呢2025年8月8号咯,5.5,2015.5.5,208-08-08,啊10月10号的,2001-10-08,3001-10-08,20_2012-12-20_20,啊10月10日了,10月10日10点,05-05,5-5,2012-12-20_20_20,2025-13-20_20_20的,1-1,1-1-1,10-10-10,2025-13-11,2025-11-33,啊1000-10-10的,如果2025-12-12的,a12-12b,我们2025年12月12日干嘛2025年12月的12月12日呢"
val pattern = Pattern.compile(regexStr)
val matcher = pattern.matcher(matcherStr)
val spannableString = SpannableString(matcherStr)
while (matcher.find()){
val start = matcher.start();
val end = matcher.end()
//设置背景颜色高亮
val backgroundColorSpan = BackgroundColorSpan(Color.YELLOW)
spannableString.setSpan(backgroundColorSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
//设置文字颜色
val foregroundColorSpan = ForegroundColorSpan(Color.RED)
spannableString.setSpan(foregroundColorSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
val result = matcher.group()
LogUtils.i("匹配到:" + result)
}
resultTextView?.setText(spannableString)
}
}
|