2012-07-03 24 views
0

我想創建一個簡單的正則表達式,它將在文本塊中的三個點之後擺脫任何東西。不知道我應該,因爲第一部分用什麼符號會比字母和數字簡單的正則表達式消除3點後的任何東西

例如更多,如果我通過在

任何事情都有可能前三個點$ NC去>> ...這應該elminated d & <>

我應該得到

什麼都可以去之前三個點$ NC >>

我有以下

([不知道到這裏])...([任何東西在這裏]) 替換爲:$ 1

回答

1

你不說你已經嘗試什麼或RE語法,你正在使用,所以這可能不是你正確的,但這個想法是:

^\(.*\)\.\.\..*$ 

打破:

^ - start of line 
.* - zero or more of anything 
\(.*\) - the above tagged 
\.\.\. - three dots, escaped to match a literal dot 
.*$ - anything else till end of line 

正如我說的,你的語法可能不完全與此相同,但關鍵是你可能需要逃避三個點,使他們字面爲大多數RE的使用點作爲特殊字符。

1

點代表任何字符。星號代表0+重複。因此.*表示任意長度的(可選)字符串。要搜索點,你必須逃避它們。

這個表達式將搜索任何東西后面的三個點:.*\.\.\.

添加可選字符串結尾:.*\.\.\..*

然後你附上你感興趣的部分:(.*)\.\.\..*$1取代。據我所知,在可可你不必逃避括號,但我不是100%肯定的。

如果您使用的是文本行,則可能需要爲您的表達式添加^前綴和$後綴。

未經檢驗的建議:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@".*\.\.\..*" options:nil error:&error]; 
[regex replaceMatchesInString:myString options:nil range:range withTemplate:@"$1"]; 
相關問題