簡體   English   中英

(Swift) 如何在字符串中查找與正則表達式匹配的所有字符串

[英](Swift) How to find all strings that matches regex in string

 func findSrcs(_ content: String) {
            if let match = content.range(of: """
(?<=src=")[^"]+
""", options: .regularExpression) {
                print(content.substring(with: match))
        }
    }

上面的函數需要返回 html 字符串中的所有src “內容”是 HTML 字符串。
函數可以工作,但只從 Content 打印第一張圖像的 src。 如何捕捉所有這些?

您需要使用類似於此使用的一個條件,而手動發現在你的字符串中的所有事件,並得到串子序列,而不是它的范圍:

func findSrcs(_ content: String) -> [Substring] {
    let pattern = #"(?<=src=")[^"]+"#
    var srcs: [Substring] = []
    var startIndex = content.startIndex
    while let range = content[startIndex...].range(of: pattern, options: .regularExpression) {
            srcs.append(content[range])
            startIndex = range.upperBound
    }
    return srcs
}

游樂場測試:

let content = """
<span>whatever</span>
<img src="smiley.gif" alt="Smiley face">
<span>whatever</span>
<img src="stackoverflow.jpg" alt="Stack Overflow">
"""

print(findSrcs(content))

這將打印

["smiley.gif", "stackoverflow.jpg"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM