regex - 将大写转换为标题大小写

标签 regex swift

我想快速将大写字符串 (UPPERCASE) 转换为标题大小写字符串 (Title Case)。我不擅长正则表达式,但找到了this用我尝试使用的正则表达式回答。

搜索表达式为:

"([A-Z])([A-Z]+)\b"

模板表达式为:

"$1\L$2"

为了快速使用它,我转义了反斜杠,如下所示:

var uppercase = "UPPER CASE STRING"
var titlecase = uppercase.stringByReplacingOccurrencesOfString("([A-Z])([A-Z]+)\\b", withString: "$1\\L$2", options: NSStringCompareOptions.RegularExpressionSearch, range: Range<String.Index>(start: uppercase.startIndex, end: uppercase.endIndex))

上面的代码给出了以下结果:

"ULPPER CLASE SLTRING"

从中您可以看到搜索表达式成功找到了 $1 和 $2 这两个部分,但看起来转义反斜杠会干扰替换。

我怎样才能得到预期的结果:

"Upper Case String"

最佳答案

许多有用的现有 NSString 方法都可以从 Swift 获得。这包括 capitalizedString ,这可能会完全按照您的要求执行。

关于regex - 将大写转换为标题大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32710383/

相关文章:

用于电话验证的 JavaScript 正则表达式

ios - Swift append to array 在 32 位系统上给我 EXC_BAD_INSTRUCTION EXC_l386_INVOP

ios - Firebase 不显示通知

swift - 如何以给定的粒度生成两个日期之间的每个日期?

Javascript 字符串匹配

.net - 学习正则表达式模式的算法

c# - 正则表达式检查重复

xml - 强类型 xml 属性组合的提示(构建器)

ios - 是否有 'willSet' 和 'didSet' 我可以拦截 UIScrollview.contentOffset?

java - 使用正则表达式删除后跟 O 的单个字符