我不是很擅长正则表达式(我一年只能使用它几次)并希望看看是否有人可以帮助查找所有
的所有实例的C#正则表达式语句 <####-##-##> 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>
答案 0 :(得分:1)
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>
请注意,根据您正在处理的字符串中的其他文本,对细节的需求会增加。还有很多其他标签吗?不是日期的数字?等。
答案 1 :(得分:0)
如果检查标签内的值,这将是一个解决方案。
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);
}