我有一個本地化的字符串,看起來在英語中是這樣的:正則表達式來提取若干步驟
「
5英里(S)
5,252步驟(S)
」
我的應用程序是以左向右和從右向左語言進行本地化的,因此我不想對step(s)
的排序或關於數字格式的假設(例如5,252可以是5.2 52取決於用戶區域設置)。所以,我需要考慮的可能性,可以加入
步驟(S)5.252
以及什麼是上面的事。
其他一些注意事項
- 我所知道的是,如果
Step(s)
線就在那裏,這將是自己的行(因此在我的正則表達式我需要在繩子的兩端。\ n) - 不能保證
Mile(s)
信息將在字符串中可言,更談不上是否會之前或之後Step(s)
這裏是我的方式提取嘗試:
NSString *patternString = [NSString stringWithFormat:@"\\n(([0-9,\\.]*)\s*%@|%@\s*([0-9,\\.]*))\\n",
NSLocalizedString(@"Step(s)",nil), NSLocalizedString(@"Step(s)",nil)];
似乎有兩個問題:
- Xcode是指示
Unknown escape sequence '\s'
在圖案串的第二\s
上述 - 沒有球賽被發現甚至對於像以下字符串:
0.2英里(S)
1482步驟(一個或多個)
理想情況下,我會以本地化友好的方式從該字符串中提取1,482
。我應該如何修改我的正則表達式?
我想你也想提取里程。但要澄清,你*只*想要的步驟? – sweaver2112
從右到左在這裏是錯誤的術語。在RTL語言中,數據顯示*的方式是數字在單詞的右側,但是**字符的順序仍然是相同的**:'\ d + \ w +'對於希伯來語將起作用。語言環境仍然可能會優先選擇單詞後面的數字。一個例子是貨幣:[20美元對20美元](http://english.stackexchange.com/a/11341/220) – Kobi