swift中带反斜杠的正则表达式
我在使用replacingOccurrences替换swift 5和Xcode 12中文本视图中某些特定关键字后的单词时遇到问题 例如: 我的文本视图将包含以下字符串“NAME\JOHN PHONE\555444333” “NAME”和“PHONE”将是唯一的,因此每当我更改适当的字段时,我都希望更改此文本视图中的NAME或PHONE 例如,让我们用代码将JOHN更改为CLOEswift中带反斜杠的正则表达式,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
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)