Ios 通过修改swift中的匹配字符串,使用正则表达式替换匹配项

Ios 通过修改swift中的匹配字符串,使用正则表达式替换匹配项,ios,swift,regex,replace,Ios,Swift,Regex,Replace,我试图在swift中使用正则表达式替换匹配的字符串,我的要求如下 originalString=“现在在德国(DE)直播” 我希望(“”)中的字符串,即DE用空格分隔,即“DE” 所以replacedString应该是“它现在在德国(DE)直播” 我试过下面的代码 var value: NSMutableString = "It is live now at Germany(DE)" let pattern = "(\\([A-Za-z ]+\\))" let regex = try? NSRe

我试图在swift中使用正则表达式替换匹配的字符串,我的要求如下

originalString=“现在在德国(DE)直播”

我希望
(“”)
中的字符串,即
DE
用空格分隔,即“DE”

所以replacedString应该是
“它现在在德国(DE)直播”

我试过下面的代码

var value: NSMutableString = "It is live now at Germany(DE)"
let pattern = "(\\([A-Za-z ]+\\))"
let regex = try? NSRegularExpression(pattern: pattern)
regex?.replaceMatches(in: value, options: .reportProgress, range: 
NSRange(location: 0,length: value.length), withTemplate: " $1 ")
print(value)
输出是
现在在德国(DE)
现场直播,我知道这不是需要的。 这里它基于模板,我们不能基于匹配的字符串值进行修改。有没有办法做到这一点

提前感谢

您可以使用

var value: NSMutableString = "It is live now at Germany(DE) or (SOFE)"
let pattern = "(?<=\\G(?<!\\A)|\\()[A-Za-z](?=[A-Za-z]+\\))"
let regex = try? NSRegularExpression(pattern: pattern)
regex?.replaceMatches(in: value, options: .reportProgress, range: NSRange(location: 0,length: value.length), withTemplate: "$0 ")
print(value)
var-value:NSMutableString=“现在在德国(DE)或(SOFE)现场直播”

let pattern=“(?格式固定为
+
两个字母
+
?尝试
值。replacingOccurrences(of:(\\\([A-Za-z])([A-Za-z]\\)”,带:“$1$2”,选项:String.CompareOptions.regularExpression,范围:nil)
@Wiktor,谢谢你的回答。不,它不是用两个字母固定的,它也可以超过2个。好的,所以总是
,然后是一个或多个空格或字母,然后是一个
,对吗?是的,再举一个例子“(SOFE)”应该是“(sof E)”它可以工作。但是我有一个问题,正则表达式的哪一部分在添加空格?”“在角色之间?对不起,如果这是一个愚蠢的问题,因为我对正则表达式的理解是一个beginner@RajeshRs
带模板:“$0”
/
带模板:“$0”
-您现在看到空格了吗?正则表达式从不插入或添加任何内容,正则表达式模式用于搜索符合某些模式的字符串。替换模式用于向匹配项添加/插入字符,而不是向匹配项添加/插入字符。
let val =  "It is live now at Germany(DE) or (SOFE)"
let pattern = "(?<=\\G(?<!\\A)|\\()[A-Za-z](?=[A-Za-z]+\\))"
print( val.replacingOccurrences(of: pattern, with: "$0 ", options: .regularExpression, range: nil) )