2012-11-20 69 views
2

我正在尋找一個RegEx,它捕獲由一個字符串模式包圍的一系列數字,並填充該數字的前導零的數字最多爲4位數。同時所有的空間都應該從整個字符串中刪除。 一些示例: 「F12b」應捕獲「12」並返回「F0012b」 「AB 214/3」應捕獲「214」並返回「AB0214/3」 「G0124」應捕獲「0124」並返回原始串不變其他字符包圍的RegEx填充數字

源字符串應遵守以下規則: - 應與[A-ZA-Z] 開始 - 後上面的圖案可以是任何數量可選的空間 的 - 數字序列可以隨後另一個字符串 - 數字序列可以是任意數量的數字。只有少於4位的數字是用前導零填充的序列,否則保持不變。我只對一個字符串中的第一個出現感興趣

我在這裏發佈這個問題,因爲我不經常使用RegEx來解決這個問題,但我知道它是RegEx的完美案例。 非常感謝任何幫助,表達式的解釋肯定會幫助我理解它。

+4

您使用什麼語言/工具? – kev

+0

有沒有人可以回答這個問題?我看到這個問題似乎被放棄了。 –

回答

2

以匹配並提取所需的信息,正則表達式是好的,你可以使用這個:

^([a-zA-Z]+)\s*(\d+)(.*) 

看到它here on regexr。你只看到空間已經在你的第二個例子中被刪除,但所有需要的信息在$1$2$3

正則表達式捕獲的匹配模式的工具。在替換方法中使用該模式以及如何構建替換字符串完全取決於語言,與正則表達式無關。在不知道語言的情況下,這部分是無法回答的。