2011-08-10 28 views
1

我試圖用regexKitLite替換字符,而不是在字符串開頭,本身跟着另一個字符。RegexKitLite字符串開頭的問題

thisPlate = [sBasePlate 
      stringByReplacingOccurrencesOfRegex:[NSString stringWithFormat:@"([^\\^]%@)", thisChar] 
      withString:[NSString stringWithFormat:@"\1%@", thisRep] 
      ]; 

如果sBasePlate是 「臨時」,然後thisPlate被設置爲EMP,但我希望它是teemp

所以我想不替換STRING的開始,然後是thisChar,與之匹配的是thisRep

我的反向引用錯誤了嗎?因爲這似乎是缺少的。它thisRep將在,而忽視了最初的匹配,而不是與\ 1

對不起把它放回如果我做了一件非常愚蠢的和明顯的,這是我的第一個應用程序。

回答

1

對,我解決了它。我討厭回答我自己的問題,但其他人可能會犯同樣的錯誤,所以我錯過了很大的愚蠢的明顯的事情...

回引用應該是$符號。

withString:[NSString stringWithFormat:@"$1%@", prevRep] 

這就是應該如何寫這個字符串。

煩人這裏文檔中說,一個反向引用應該是 「\ n」:

http://regexkit.sourceforge.net/RegexKitLite/

不過的例子在其他地方顯示的$ n。我應該猜到了。好吧。