2010-10-13 65 views
1

我需要一些简单的模式匹配和替换练习帮助我正在做什么?需要C#中正则表达式,模式匹配的帮助?

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

1) “宽度= 000” 或 “宽度= 00” 或 “宽度= 0”

2) “滴= 000” 或 “下降= 00” 或 “降= 0”

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

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

感谢,

+0

感谢真棒和快速反应,1+所有。 – IbrarMumtaz 2010-10-13 14:40:33

+0

下次,请仅注册*正确*答案。 :) – Timwi 2010-10-13 14:42:40

回答

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” 。

3

像这样的工作:

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