我想知道是否有办法使用regex
在每个1位数字前添加0。
输入字符串是由' - '分隔的1-3个数字的列表。 (即28
,12-56
,67-6
,45-65-46
)。
我遇到的两个问题是:
^[0-9]-
,-[0-9]-
,^[0-9]&
,-[0-9]&
Regex.Replace(input, "^[0-9]-","0")
转换为:Regex.Replace(input, "^[0-9]-","^0[0-9]-")
答案 0 :(得分:3)
(?<!\d)(\d)(?!\d)
0$1
其中:
(?<!\d)
是一个负面的背后,确保我们在比赛前没有数字。(\d)
是一个捕获组,在替换部分中由$1
引用。(?!\d)
是一个负面的预测,确保我们在比赛结束后没有数字。有关信息,请参阅lookaround。
这会将0
+数字替换为其他数字之前或之后的数字。
Regex.Replace(input, @"(?<!\d)(\d)(?!\d)","0$1")