我正在嘗試為我的 Kotlin/JVM 程式撰寫一個滿足以下條件的正則運算式:
鑒于這行文本{#FF00FF}test1{#112233}{placeholder} test2
它應該匹配:
匹配 1:#FF00FF作為第 1 組和test1第 2 組
匹配 2:#112233作為第 1 組和{placeholder} test2第 2 組
#FF00FF可以是任何有效的 6 字符十六進制顏色代碼。
我正在努力解決的問題是匹配顏色模式之后的文本,直到出現另一種顏色模式。
我想出的當前正則運算式是\{(#[a-zA-Z0-9]{6})\}((?!\{#[a-zA-Z0-9]{6}\}).*)
uj5u.com熱心網友回復:
您可以使用
\{(#[a-zA-Z0-9]{6})\}(.*?)(?=\{#[a-zA-Z0-9]{6}\}|$)
請參閱正則運算式演示。詳情:
\{- 一個{字符(#[a-zA-Z0-9]{6})- 第 1 組:一個#字符和六個字母數字\}- 一個}字符(.*?)- 第 2 組:除換行符之外的任何零個或多個字符盡可能少(?=\{#[a-zA-Z0-9]{6}\}|$)- 緊跟一個{,#, 六個字母數字和一個}char 或字串結尾的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/475178.html
