Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用RegEx.Replace替换。和-于以下日期(2016年4月1日)发送至a/_C# - Fatal编程技术网

C# 如何使用RegEx.Replace替换。和-于以下日期(2016年4月1日)发送至a/

C# 如何使用RegEx.Replace替换。和-于以下日期(2016年4月1日)发送至a/,c#,C#,我有一个输入错误的日期字符串,我需要更正它,我想知道是否可以使用RegEx.Replace来实现这一点 文件上的日期字符串为2016年10月1日 我想将“.”和“-”替换为“/”您可以使用以下正则表达式:(\d{2})\(\d{2})-(\d{4}) 细分: \d-匹配数字 {2}和{4}期望前面的模式(在我们的例子中是\d)分别出现2次和4次 ()-创建捕获组 \.-在正则表达式中有一个特殊的含义,因此我们将对其进行转义 \.和-是静态值,我们希望它们位于捕获组之间 因此,这些部分是我们的

我有一个输入错误的日期字符串,我需要更正它,我想知道是否可以使用RegEx.Replace来实现这一点

文件上的日期字符串为2016年10月1日


我想将“.”和“-”替换为“/”

您可以使用以下正则表达式:
(\d{2})\(\d{2})-(\d{4})

细分:

  • \d
    -匹配数字
  • {2}
    {4}
    期望前面的模式(在我们的例子中是
    \d
    )分别出现2次和4次
  • ()
    -创建捕获组
  • \.
    -
    在正则表达式中有一个特殊的含义,因此我们将对其进行转义
  • \.
    -
    是静态值,我们希望它们位于捕获组之间
因此,这些部分是我们的最终表达:

  • (\d{2})
    -匹配并捕获00到99之间的任意两位数
  • \.
    -匹配一个
  • (\d{2})
    -匹配并捕获00到99之间的任意两位数
  • -
    -匹配一个
    -
  • (\d{4})
    -匹配并捕获0000到9999之间的任何四位数字

现在,为了按照您的需要实际格式化日期,我们需要获取这3个捕获组捕获的数据并执行替换。您可以通过它们在正则表达式中的位置来引用它们,因此我们有
$1
$2
$3

var input = "01.10-2016";
var result = Regex.Replace(input, @"(\d{2})\.(\d{2})-(\d{4})", "$1/$2/$3");
这将输出所需的值


这应该可以捕获部分:下面是我输入的MessageBox.Show(Regex.Replace(“01.04-2016”,@“(\d{2})\。(\d{2})-(\d{4})”,“/”);但是它返回的只是“/”嗨,你对这个问题还有什么不确定的吗?这就是我想要的-谢谢你的帮助