swift中带反斜杠的正则表达式

swift中带反斜杠的正则表达式,swift,regex,uitextview,Swift,Regex,Uitextview,我在使用replacingOccurrences替换swift 5和Xcode 12中文本视图中某些特定关键字后的单词时遇到问题 例如: 我的文本视图将包含以下字符串“NAME\JOHN PHONE\555444333” “NAME”和“PHONE”将是唯一的,因此每当我更改适当的字段时,我都希望更改此文本视图中的NAME或PHONE 例如,让我们用代码将JOHN更改为CLOE txtOther.text = txtOther.text.replacingOccurrences(of: &quo

我在使用replacingOccurrences替换swift 5和Xcode 12中文本视图中某些特定关键字后的单词时遇到问题

例如: 我的文本视图将包含以下字符串“NAME\JOHN PHONE\555444333”

“NAME”和“PHONE”将是唯一的,因此每当我更改适当的字段时,我都希望更改此文本视图中的NAME或PHONE

例如,让我们用代码将JOHN更改为CLOE

txtOther.text = txtOther.text.replacingOccurrences(of: "NAME(.*?)\\s", with: "NAME\\\(new_value) ", options: .regularExpression)
print (string)

输出:“NAMECLOE”而不是“NAME\CLOE”

根据正则表达式,我无法获取反斜杠以获得打印

或者更改regex表达式,只是在“NAME”之后将JOHN改为CLOE

谢谢


Ariel

您可以通过在常规表达式中使用原始字符串来解决此问题,该字符串由
#

请注意,名称和\位于单独的组中,可在替换时引用

let output = string.replacingOccurrences(of: pattern, with: "$1\(new_value) ", options: .regularExpression)
使用

“NAME\\JOHN PHONE\\555444333”。重复发生(
共有:#“名称\\(\S+)”#,
加上:“名称(新值)”,
选项:。正则表达式
)
双反斜杠在替换中,反斜杠是替换中的一个特殊元字符

\S+
匹配一个或多个不同于空白的字符,这比
*?\S
更短、更高效,而且您不必担心如何放回空白。

使用:“NAME(newValue)”
let output = string.replacingOccurrences(of: pattern, with: "$1\(new_value) ", options: .regularExpression)