您需要删除^
和$
锚点。
该^
装置 开始字符串 和$
手段 结束字符串 (或行,这取决于选项)。这就是第一个示例起作用的原因:在第一个测试字符串中,字符串的开头实际上是您的模式,并以该模式结尾。
在第二个测试字符串中,模式位于字符串的中间,因此^...
不能应用。如果您只删除^
,则$
将会在第二次出现注册号时适用,输出将是my car reg 1 - DD11 AAA my car reg 2 - XX
。
let myString = "my car reg 1 - DD11 AAA my car reg 2 - AA22 BBB"
let regex = try! NSRegularExpression(pattern: "([A-HK-PRSVWY][A-HJ-PR-Y])\\s?([0][2-9]|[1-9][0-9])\\s?[A-HJ-PR-Z]{3}", options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, myString.count)
let modString = regex.stringByReplacingMatches(in: myString, options: [], range: range, withTemplate: "XX")
print(modString)
// Output: "my car reg 1 - XX my car reg 2 - XX"