繁体   English   中英

C#正则表达式帮助替换模式

[英]C# Regex Help replacing patterns

我不太擅长regex(我一年只能使用几次),想看看是否有人可以帮助C#regex语句查找所有实例。

<####-##-##> or </####-##-##>

并替换为

<date-####-##-##> or </date-####-##-##>

以便

<2012-01-01>stuff</2012-01-01><2012-05-01>stuff2</2012-05-01>

<date-2012-01-01>stuff</date-2012-01-01><date-2012-05-01>stuff2</date-2012-05-01>
string test = "<2012-01-01>stuff</2012-01-01><2012-05-01>stuff2</2012-05-01>";

var regex = new Regex(@"<(/?)(\d\d\d\d)-(\d\d)-(\d\d)>");
var result = regex.Replace(test, @"<$1date-$2-$3-$4>");

Console.WriteLine(result);

//output:
//<date-2012-01-01>stuff</date-2012-01-01><date-2012-05-01>stuff2</date-2012-05-01>

请注意,对细节的需求会根据正在处理的字符串中的其他文本而增加。 还有很多其他标签吗? 不是数字的日期吗? 等等..

如果检查标记内的值,这将是一个解决方案。

if(Regex.IsMatch(input, @"^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$"))
        {
            input.Replace(input,"date-"+input);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM