我是正则表达式新手。我想知道如何使用正则表达式来替换
001-34/323
To
001/34-323
我有这样的东西
return Regex.Replace(input,
"\\b(?<p1>\\d{1,2})/(?<p2>\\d{1,2})/(?<p6>\\d{2,4})\\b",
"${p1}-${p2}-${p3}", RegexOptions.None.
我有类似的东西,但它不起作用,它的作用与我想要的相反
输入全部为整数。请告诉我将输入更改为输出的正则表达式 谢谢
最佳答案
您当前的正则表达式需要这样的数字:
P1/P2/P3
地点:
- P1 是 1-2 位数字
- P2 是 1-2 位数字
- P3 是 2-4 位数字
为什么不起作用?您的输入字符串是 001-34/323
( P1-P2/P3
) 并且 P1 是一个 3 位数字。此外,您的最后一个捕获组名为 <p6>
,不是<p3>
.
正确的字符串应该是:
\b(?<p1>\d{1,3})-(?<p2>\d{1,2})/(?<p3>\d{2,4})\b
或者转义形式:
"\\b(?<p1>\\d{1,3})-(?<p2>\\d{1,2})/(?<p3>\\d{2,4})\\b",
您的输出模板也是错误的( P1-P2-P3
,而不是 P1/P2-P3
)。
最终代码示例:
var input = "001-34/323";
var output = Regex.Replace(input,
"\\b(?<p1>\\d{1,3})-(?<p2>\\d{1,2})/(?<p3>\\d{2,4})\\b",
"${p1}/${p2}-${p3}",
RegexOptions.None);
Console.WriteLine(output);
关于c# - 正则表达式匹配某些公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53094438/