通过快速修改匹配的字符串使用正则表达式替换匹配项

拉杰什Rs

我正在尝试使用正则表达式快速替换匹配的字符串,我的要求如下

originalString = "It is live now at Germany(DE)"

我希望(" ")ie中的字符串DE以空格分隔,即“ D E”

所以replaceString应该是"It is live now at Germany(D E)"

我尝试下面的代码

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)

输出是It is live now at Germany (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)

要不就

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) )

输出: It is live now at Germany(D E) or (S O F E)

图案细节

  • (?<=\\G(?<!\\A)|\\()-(与前面成功匹配之后或结尾位置匹配的正向后看
  • [A-Za-z] -匹配并使用任何ASCII字母
  • (?=[A-Za-z]+\\))-与位置相匹配的正向超前查询,后跟1+ ASCII字母和一个)字符。

$0在更换插入整场比赛值回生成的字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过使用捕获的匹配项作为键,用正则表达式替换字符串

将正则表达式匹配项替换为包含匹配项的字符串

使用正则表达式替换字符串中的匹配项

通过使用正则表达式python匹配来替换字符串

用属性字符串和文本替换正则表达式匹配项

文件中单个匹配项的正则表达式字符串替换

用正则表达式替换匹配项中的子字符串

每个匹配项的C#正则表达式更改替换字符串

替换字符串中的第N个正则表达式匹配项

根据多个已命名的正则表达式匹配项替换字符串的内容

Vimscript:通过字符串获取正则表达式的所有匹配项

在Groovy中使用正则表达式替换字符串中的所有匹配项

使用正则表达式匹配字符串?

替换字符串中的重叠匹配项(正则表达式或字符串操作)

正则表达式以匹配字符串值并替换golang中的所有匹配项

如何使用正则表达式仅在字符串开头显示匹配项

在javascript中使用正则表达式在字符串末尾找到匹配项

使用正则表达式查找字符串中的所有匹配项

使用正则表达式从多行字符串中查找最短的匹配项

如何使用正则表达式从列表中提取字符串匹配项?

使用正则表达式查找字符串中的所有匹配项

Jscript .net使用正则表达式匹配替换字符串

使用C ++用正则表达式替换子字符串匹配

使用JavaScript正则表达式匹配和替换字符串

使用sed将字符串匹配的正则表达式替换为通配符

如果字符串与正则表达式匹配,则替换,如果不匹配则添加变量

用bash中的环境变量替换所有字符串正则表达式匹配项

跳过字符串的一部分,并用正则表达式替换匹配项

Python-正则表达式查找字符串中的所有匹配项并替换