我正在尝试使用regexKitLite替换一个不在STRING开头的字符,然后是另一个字符。
thisPlate = [sBasePlate
stringByReplacingOccurrencesOfRegex:[NSString stringWithFormat:@"([^\\^]%@)", thisChar]
withString:[NSString stringWithFormat:@"\1%@", thisRep]
];
如果 sBasePlate 为“temp”,那么 thisPlate 会设置为 \ temp ,但我希望它是 teemp
所以我试图取代NOT THE STRING THE STRING,然后是 thisChar ,替换为匹配后跟 thisRep 。
我的反馈是否错误?因为那似乎是缺失的。它正在添加 thisRep ,但忽略了初始匹配,而没有将其重新添加到 \ 1
对不起,如果我做了一些非常愚蠢而且显而易见的事情,这是我的第一个应用程序。
答案 0 :(得分:1)
是的,我解决了。我讨厌回答自己的问题,但是其他人可能会犯同样的错误,所以我错过了一个很明显的愚蠢的事情...
后面的引用应该是$符号。
withString:[NSString stringWithFormat:@"$1%@", prevRep]
这就是写字符串的方式。
令人讨厌的是,这里的文档说后面引用应该是“\ n”:
http://regexkit.sourceforge.net/RegexKitLite/
但其他地方的例子显示$ n。我应该猜到了。那好吧。