在C#中需要有关正则表达式,模式匹配的帮助吗?

时间:2010-10-13 14:33:09

标签: c# regex

我需要一些简单的模式匹配和替换练习的帮助吗?

我需要在给定上下文中的任何字符串中匹配以下两个字符串,并且预期两个模式都存在于给定的提供字符串中。

1)“width = 000”或“width = 00”或“width = 0”

2)“drop = 000”或“drop = 00”或“drop = 0”

对于每种情况,值可以是0-9之间的任何值,因此'000' - > '999'可以在提供的测试中使用有效的测试用例。

string url = Regex.Replace(inputString, patternString, replacementValueString);

谢谢,

2 个答案:

答案 0 :(得分:3)

请查看此页面以解释各个元素:http://msdn.microsoft.com/en-us/library/az24scfc.aspx

像这样的正则表达式字符串应该很好用:

"\b(?:width|drop)\s*=\s*\d{1,3}\b"

要阅读代码中的名称和值:

"\b(?<name>width|drop)\s*=\s*(?<value>\d{1,3})\b"

如果您不需要将数字限制为仅3位数,则可以使用“\ d +”代替“\ d {1,3}”。

开头的“\ b”将确保您不会获得某个较大单词的“宽度”或“下降”。最后的“\ b”将阻止您匹配大于999的数字。

equals语句两侧的“\ s *”允许“drop = 000”以及“drop = 000”。

答案 1 :(得分:3)

这样的事情会起作用:

(?:width|drop)=\d{1,3}