gpt4 book ai didi

ios - swift 正则表达式 : Replace Lowercase Followed by Uppercase

转载 作者:搜寻专家 更新时间:2023-11-01 06:15:41 24 4
gpt4 key购买 nike

我有以下字符串:“HelloMy name is Bob”

我想更改它,以便任何小写字母后跟一个大写字母,在它前面有一个句点,就像这样:“你好。我叫 Bob”。

目前,我有这个:

 var text = "HelloMy name is Bob"
let regex = try! NSRegularExpression(pattern: "[a-z][A-Z]")
text = regex.stringByReplacingMatches(in: text, options: [], range: NSMakeRange(0, text.characters.count-1), withTemplate: "What do I put here?")

但是,我不知道在替换模式中放什么。感谢您的帮助。

最佳答案

似乎是一个使用捕获的简单例子,你可能会找到很多关于它的文章:

var text = "HelloMy name is Bob"
let regex = try! NSRegularExpression(pattern: "([a-z])([A-Z])") //<-Use capturing, `([a-z])`->$1, `([A-Z])`->$2
text = regex.stringByReplacingMatches(in: text, range: NSRange(0..<text.utf16.count),
withTemplate: "$1. $2") //<- Use `$1`, `$2`... as reference to capture groups
print(text) //->Hello. My name is Bob

顺便说一下,NSMakeRange(0, text.characters.count-1)不是用于 NSRegularExpression 的有效范围. NSRegularExpression使用基于 UTF-16 的位置和偏移量。并代表整个范围,-1不需要。使用 NSMakeRange(0, text.utf16.count)NSRange(0..<text.utf16.count)如上。

关于ios - swift 正则表达式 : Replace Lowercase Followed by Uppercase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45538823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com