斯威夫特 5
我正在呼叫一個 API,它回傳一個包含 LaTex 元素的字串。在一個完美的世界中,API 會洗掉許多不需要的內容,但它會回傳,我需要手動將其全部洗掉。
有人知道我如何使用一個或多個正則運算式實作以下內容嗎?
\\text { c. } 50 \\times 14
變成:
50 \\times 14
\\text { d. } 180 \\div 5
變成:
180 \\div 5
更復雜的字串:
\\left. \\begin{array} { l l } { \\text { b) } 2 \\frac { 1 } { 5 } \\div ( \\frac { 4 } { 5 } - \\frac { 1 } { 4 } ) } & { } \\\\ { \\text { b) } \\frac { 1 } { 4 } - \\frac { 3 } { 4 } ) } & { } \\end{array} \\right.
變成:
\\left. \\begin{array} { l l } { 2 \\frac { 1 } { 5 } \\div ( \\frac { 4 } { 5 } - \\frac { 1 } { 4 } ) } & { } \\\\ { \\frac { 1 } { 4 } - \\frac { 3 } { 4 } ) } & { } \\end{array} \\right.
本質上,我正在嘗試洗掉以下任何情況:
\\text {and_this_also}
uj5u.com熱心網友回復:
您可以使用
let text = #"\\left. \\begin{array} { l l } { \\text { b) } 2 \\frac { 1 } { 5 } \\div ( \\frac { 4 } { 5 } - \\frac { 1 } { 4 } ) } & { } \\\\ { \\text { b) } \\frac { 1 } { 4 } - \\frac { 3 } { 4 } ) } & { } \\end{array} \\right."#
let result = text.replacingOccurrences(of: #"\\\\text\s*\{[^{}]*\}"#, with: "", options: .regularExpression, range: nil)
print(result)
輸出:
\\left. \\begin{array} { l l } { 2 \\frac { 1 } { 5 } \\div ( \\frac { 4 } { 5 } - \\frac { 1 } { 4 } ) } & { } \\\\ { \\frac { 1 } { 4 } - \\frac { 3 } { 4 } ) } & { } \\end{array} \\right.
該\\\\text\s*\{[^{}]*\}模式匹配
\\\\text-\\text字串\s*- 零個或多個空格\{- 一個{字符[^{}]*- 除{和之外的零個或多個字符}\}- 一個}字符。
請參閱正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359215.html
