簡體   English   中英

正則表達式中的2位替換號

[英]Substitute number with 2 digits in regex

我有一些輸入是一個整數存儲為一個字符串,可能有1或2位數。 我想知道是否有可能提出一個正則表達式模式和替換字符串,允許我在只有一位數的任何輸入的前面添加一個0。

即。 我想找到模式和subst這樣:

Regex.Replace("1",pattern,subst); // returns "01"
Regex.Replace("31",pattern,subst); // returns "31"

編輯:問題特定於C#正則表達式。 請不要回答提供替代方法

使用正則表達式,您可以使用單個數字周圍的單詞邊界:

string num = "5";
Regex.Replace(num, @"\b\d\b", "0$&");
//=> 05

num = "31";
Regex.Replace(num, @"\b\d\b", "0$&");
//=> 31

代碼演示

正則表達式\\b\\d\\b將匹配任一側的單個數字和字邊界,以確保我們只匹配一個數字。

關於Word邊界的更多信息


如果數字可以出現在單詞的中間,那么你可以像這樣使用lookarounds正則表達式:

num = Console.WriteLine(Regex.Replace(num, @"(?<!\d)\d(?!\d)", "0$&"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM