我对使用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使用的正则表达式引擎中的错误吗?