用正则表达式替换另一个字符串

时间:2017-07-13 09:37:02

标签: c# regex string replace pattern-matching

当我收到<iframe width="500"/>等字符串时。

我正在尝试将width="500"更改为该字符串变量中的width="100%"

我有:

if(variableName.contains("width="*"") { variableName = variableName.Replace("width="*"", "100%"); }

如上所述,我并没有做我希望做的事情。另一个注意事项是500的宽度可能是另一个随机数,例如650或甚至是500px

关于我应该如何做的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

这应该适合你:

string g = "<iframe width=\"500\"/>";

string pattern = "width=\"\\d+\"";
if (Regex.IsMatch(g, pattern))
{
    string replaced = Regex.Replace(g, pattern, "width=\"100%\"");

}

解释:

Regex.IsMatch会告诉您字符串是否包含您的模式。

Regex.Replace会将模式替换为所需的字符串

\d+:查找一个或多个数字出现

编辑:

  

可以是另一个随机数,例如650,甚至可以是500px。

你可以使用这种模式:

string pattern = "width=\"\\d+(px)?\"";

(pc)?:表示可以出现0或1次的数字之后的可选px元素