2011-03-20 95 views
2

这是我在平原形式的正则表达式:如何以正确的方式转义C#正则表达式?

<tr>[\s]+?<td class="filePathActiv"[\w\W]+?<div class="Overflow">[\s]*?(?<name>[\w\W]+?)&nbsp[\w\W]+?\(wygasa (?<wygasa>[\d\s\-\:\s]+)\)[\w\W]+?class="fileDown"[\w\W]+?<a href="(?<address>[\w\W]+?)">[\w\W]+?<td width="[\d]+?">(?<sizeMB>[\d\.]+?) MB</td>[\w\W]+?<input [\w\W]+? name="(?<path>[\w\W]+?)" [\w\W]+? value="(?<value>[\w\W]+?)"[\w\W]+?/> 

我应该如何逃离这个正则表达式?我试过这样但它不工作:

new Regex("<tr>[\\s]+?<td class=\"filePathActiv\"[\\w\\W]+?<div class=\"Overflow\">[\\s]*?(?<name>[\\w\\W]+?)&nbsp[\\w\\W]+?\\(wygasa (?<date>[\\d\\s\\-\\:\\s]+)\\)[\\w\\W]+?class=\"fileDown\"[\\w\\W]+?<a href=\"(?<address>[\\w\\W]+?)\">[\\w\\W]+?<td width=\"[\\d]+?\">(?<sizeMB>[\\d\\.]+?) MB</td>[\\w\\W]+?<input [\\w\\W]+? name=\"(?<path>[\\w\\W]+?)\" [\\w\\W]+? value=\"(?<value>[\\w\\W]+?)\"[\\w\\W]+?/>", RegexOptions.IgnoreCase); 

回答

8

你应该把它放在一个@"..."字符串。
然后,您只需将"替换为""即可。

+1

+1。比不使用'@' – 2011-03-20 18:26:41

+0

简单得多。另外,请查看http://regexhero.net/tester/上的'.net'按钮。如果以简单形式粘贴正则表达式,它将使用@“...”为您生成C#代码。 (另一位用户在另一个线程中指出了这一点。) – Kimberly 2011-03-20 18:27:59

0

我认为你应该使用Regex.Escape()方法。