在Swift中使用NSRegularExpression用子字符串替换字符串

时间:2019-09-26 13:55:45

标签: swift nsregularexpression

我对使用Swift的正则表达式替换字符串感到非常困惑。 我要替换无法正常运行的<blubb>Test</blubb>

let html  = "Test\r\nTest\r\nTest\r\nTest\r\nTest\r\nTest\r\nTest-<blubb>Test</blubb>-Test"
do {
    let regex = try NSRegularExpression(pattern: "\\<blubb\\>[\\s\\S]*\\<\\/blubb\\>", options: NSRegularExpression.Options.caseInsensitive)
    let range = NSMakeRange(0, html.count)
    let modString = regex.stringByReplacingMatches(in: html, options: [], range: range, withTemplate: "REPLACED")
    print( modString)
} catch {}

结果(不替换字符串):

Test
Test
Test
Test
Test
Test
Test-<blubb>Test</blubb>-Test

但是:

  • 如果我删除所有\r,它会起作用
  • 如果我先删除Test\r\n,它也会起作用

删除第一个测试的结果\ r \ n:

Test
Test
Test
Test
Test
Test-REPLACED-Test

那么我是否缺少某些东西,或者这是Swift使用的正则表达式引擎中的错误吗?

0 个答案:

没有答案