{C}正则表达式需要转义<
和>
吗?我因为命名组而不确定,因为this regex cheat sheet列出了元字符部分。
html = Regex.Replace(html, "(<body.*?>)", replacement);
或
html = Regex.Replace(html, "(\<body.*?\>)", replacement);
答案 0 :(得分:8)
永远不必在regexen中转义<
或>
。它们具有特殊含义的唯一上下文是<
在(?
之后。由于在(?
转义<
之后不允许直接使用常规字符,因此没有任何意义(即(?\<blabla\>)
将会形成错误)。
如果您想匹配文字序列?<bla>
,则需要转义?
,而不是<
以及所有其他情况<
和{{} 1}}没有特殊意义。
答案 1 :(得分:1)
在此表达式中,它们不需要转义,因为它们不包含字。如果您的表达式更像(?<body>.*?)
,那么它将捕获.*?
并将其命名为body
。
答案 2 :(得分:0)
在这种情况下,它并不是绝对必要的,但是如果你确实逃避了,你肯定清楚你的意思,而在你从6个月开始审查你的代码或者其他人阅读代码时,逃避可能会引起对意义的怀疑。 / p>