是否需要在 C# 正则表达式<
中>
转义?由于命名组,我不确定,因为这个正则表达式备忘单将它们列在元字符部分。
html = Regex.Replace(html, "(<body.*?>)", replacement);
或者
html = Regex.Replace(html, "(\<body.*?\>)", replacement);
是否需要在 C# 正则表达式<
中>
转义?由于命名组,我不确定,因为这个正则表达式备忘单将它们列在元字符部分。
html = Regex.Replace(html, "(<body.*?>)", replacement);
或者
html = Regex.Replace(html, "(\<body.*?\>)", replacement);
永远不需要逃避<
或>
在正则表达式中。它们具有特殊含义的唯一上下文是如果<
出现在 之后(?
。(?
而且由于在转义后不允许直接使用常规字符,因此<
没有任何意义(即(?\<blabla\>)
格式错误)。
如果要匹配文字序列?<bla>
,则需要转义?
,而不是<
and 在所有其他情况下<
,并且>
没有特殊含义。
在这个表达式中,它们不需要转义,因为它们没有被一个单词包裹。如果您的表达方式更像,(?<body>.*?)
那么它会做的就是捕捉.*?
并命名它body
。
在这种情况下,这并不是绝对必要的,但是如果您确实逃脱了,那么您的意思肯定很清楚,而当您在 6 个月后查看您的代码或其他人阅读它时,不逃脱可能会引起对含义的怀疑。