[英]using regex to trim off last few digits
使用正則表達式。 嘗試僅獲取數字的最后x位數字,並在必要時填充0
考慮以下輸入
1234
123
12
1
編輯:這些將單獨顯示為字符串值
我正在嘗試制作一個正則表達式(或多個正則表達式,理想情況下只是一個)
34
23
12
01
我對正則表達式和反向引用有點陌生,但仍然有些困惑。 關於在哪里看或可以做什么的任何想法?
謝謝
編輯為澄清:在.net的System.Text.Regex.Replace()函數中使用,這些值中的任何一個都可以作為輸入參數來使用。
編輯:謝謝大家的想法。 看來這不能在正則表達式中完成。 真是可悲。
如果必須使用正則表達式,則可以使用MatchEvaluator來完成,但是最好不要為此任務使用正則表達式。
由於您指出不使用正則表達式的解決方案是可以接受的,因此這是在不使用正則表達式的C#中執行此方法的一種方法:
void Run()
{
string s ="1234";
s = lastXDigits(s, 3);
Console.WriteLine(s);
}
string lastXDigits(string s, int x)
{
if (s.Length < x)
{
return s.PadLeft(x, '0');
}
else
{
return s.Substring(s.Length - x);
}
}
每個輸入的結果:
234 123 012 001
根據您的其他問題,我假設您正在使用VB.Net。
您不需要正則表達式; 您可以只使用字符串操作:
Dim str As String
If str.Length > 2 Then str = str.Substring(str.Length - 2)
str = str.PadLeft(2, '0'c)
您可以做的是使用.substring(int start, int length)
,然后將字符串格式化為2個字符長,但是除非您指定語言,否則我們的雙手會束手無策。
這不會填充零,但似乎可以(在JavaScript中測試):
/[0-9]{1,2}$/
您使用什么語言? ..如果沒有正則表達式,這可能會更容易。
例如,以下是您如何在PHP中實現的方法:
$arr = array(1234,123,12,1);
foreach($arr as $num)
{
echo '<br />'.str_pad(substr($num,-2), 2, "0", STR_PAD_LEFT);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.