尋找一個正則表達式的字符串,這將讓我找到了最右邊的(如果有的話)組數字嵌入的字符串。我們只關心連續的數字。我們不關心符號,逗號,小數等。如果找到,應該簡單地像字母一樣視爲非數字。什麼RegEx字符串會查找字符串中最後(最右邊)的一組數字?
這是更換/遞增的目的,所以我們還需要抓住一切之前和檢測的數量後,這樣我們就可以增加值後重建的字符串,所以我們需要一個切分正則表達式。
這裏的例子,我們正在尋找什麼:
- 「abc123def456ghi」 應確定the'456'
- 「abc123def456ghi789jkl」 應確定the'789'
- 「abc123def」 應確定」 123'
- 「123ghi」 應確定the'123'
- 「abc123,456ghi」 應確定the'456'
- 「ABC-654def」 應當IDE ntify the'654'
- ‘ABCDEF’不應返回任何比賽
由於我們想要的一個例子,它會是這樣的名稱開始‘項目4-1A’,提取出'1'作爲前綴後的所有內容,後綴爲後綴。然後使用它,我們可以在代碼循環中生成值'Item 4-2a','Item 4-3a'和'Item 4-4a'。現在
如果我要找的第一組,這將是很容易。我只是找到0個或多個非數字字符爲前綴的第一個連續的塊,然後將1個或更多數量的連續數字塊,然後一切到底是後綴。
我遇到的問題是如何定義的前綴爲包括除了最後一組的所有(如果有的話)的數字。我嘗試使用前綴的所有內容都會吞噬最後一組,即使我試圖通過基本顛倒上述方法來將它錨定到最後。
由@Birei提供,並在連接之前更新第二個索引以獲得所需的結果。 – 2012-01-05 13:15:43
你怎麼能分裂?如果字符串是a44b44c呢?前綴應該是'a44b',如果我打算進行過多的手動操作,那麼使用正則表達式已經支持已命名的令牌。 – MarqueIV 2012-01-05 13:18:11
通過拆分,我的意思是(Regex.Split)[http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.split.aspx],因此是以前評論中的超鏈接。應用'Regex.Split()'爲'a44b44c'賦予3個標記。 'a44b','44'和'c'。 – 2012-01-05 13:21:51