C# 如何用正则表达式替换忽略中间的字符串的开头和结尾?
我正在使用c#regex.replace,我想替换此字符串:C# 如何用正则表达式替换忽略中间的字符串的开头和结尾?,c#,regex,C#,Regex,我正在使用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>
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>";
RWGRF-W02PS-PU-BU-FLD”;
带有:RWGRF-W02PS-PU-BU-FLD”;
现在我可以很容易地用两个替换调用来完成这项工作,但是用于很多事情,所以我需要一次性完成这项工作,是否有必要在一次调用regex中完成全部替换
<>我试着用.+来匹配字符串中间的任何东西,但是它显然也替换了整个字符串的中间部分,我希望它忽略字符串的那部分而不去触摸它,我知道有一种方式我无法理解它。我也很欣赏答案,但是如果有人能解释它是如何工作的,那就更好了:p>
谢谢!我会用括号存储匹配,然后替换它
exp = new Regex(@"YourtagStartRegex(bodyRegex)YourtagClosingRegex");
str = exp.Replace(str, "<center>$1</center>");
exp=new Regex(@“YourtagStartRegex(bodyRegex)yourtagclosingreex”);
str=exp.Replace(str,“$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>");
}
私有静态只读正则表达式pRegex=
新的正则表达式(“^(.*)
$”;
公共静态字符串替换字符串(字符串输入)
{
返回pRegex.Replace(输入,
match=>“”+match.Groups[1]。值+“”);
}
显然,将方法和Regex变量的名称更改为对您的特定应用程序更有意义的名称。当然,您可以使用静态字符串作为开始和结束标记,使用(++)作为匹配体。