我正在使用c#regex.replace,我想替换这个字符串:
test = "<p align=\"center\"><b><font size=\"4\">RWGRF-W02PS-PU-BU-FLD</font></b></p>";
with: <center><b><font size=\"4\">RWGRF-W02PS-PU-BU-FLD</font></b><center>";
现在我可以很容易地通过两次调用来替换,但是
用于很多事情,所以我需要一次性完成,无论如何要做到这一点取代所有的一次调用正则表达式?
我尝试使用。+来匹配字符串中间的任何内容,但是它显然也会替换整个字符串的中间部分,我希望它忽略字符串的那部分而不是触摸它,我知道那里是一种我无法弄明白的方式。我也很欣赏答案,但如果有人能解释它的工作方式会更好:)
谢谢!
答案 0 :(得分:1)
我会将匹配与括号一起存储,然后替换它。
exp = new Regex(@"YourtagStartRegex(bodyRegex)YourtagClosingRegex");
str = exp.Replace(str, "<center>$1</center>");
答案 1 :(得分:1)
试试这个:
private static readonly Regex pRegex =
new Regex("^<p align=\"center\">(.*)</p>$");
public static string ReplaceString(string input)
{
return pRegex.Replace(input,
match => "<center>" + match.Groups[1].Value + "</center>");
}
显然,将方法和Regex变量的名称更改为对您的特定应用程序更有意义的名称。