我正在尝试使用 regexKitLite 替换一个不在字符串开头的字符,其自身后跟另一个字符。
thisPlate = [sBasePlate
stringByReplacingOccurrencesOfRegex:[NSString stringWithFormat:@"([^\\^]%@)", thisChar]
withString:[NSString stringWithFormat:@"\1%@", thisRep]
];
如果 sBasePlate 是“temp”,则 thisPlate 会设置为 emp,但我希望它是 teemp
因此,我尝试将 NOT THE START OF THE STRING,后跟 thisChar 替换为已匹配后跟 thisRep 的字符串。
我的反向引用有误吗?因为那似乎是缺失的。它添加了 thisRep,但忽略了初始匹配并且没有将其放回 \1
对不起,如果我做了一些非常愚蠢和明显的事情,这是我的第一个应用程序。
最佳答案
好的,我解决了。我讨厌回答自己的问题,但其他人可能会犯和我一样的错误,所以我错过了一个明显的愚蠢大事......
反向引用应该是 $ 符号。
withString:[NSString stringWithFormat:@"$1%@", prevRep]
字符串应该这样写。
令人讨厌的是这里的文档说反向引用应该是“\n”:
http://regexkit.sourceforge.net/RegexKitLite/
但是别处的例子显示$n。我早该猜到的。那好吧。
关于iphone - 字符串开头的 RegexKitLite 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018698/