我需要一些简单的模式匹配和替换练习的帮助吗?
我需要在给定上下文中的任何字符串中匹配以下两个字符串,并且预期两个模式都存在于给定的提供字符串中。
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);
谢谢,
答案 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}