[英]Do less than and greater than need escaped in a C# regex?
<
和>
是否需要在C#正则表达式中进行转义? 我不确定是因为命名组,因为这个正则表达式备忘单在元字符部分列出了它们。
html = Regex.Replace(html, "(<body.*?>)", replacement);
要么
html = Regex.Replace(html, "(\<body.*?\>)", replacement);
在regexen中永远不必逃避<
或>
。 它们具有特殊含义的唯一上下文是<
after after (?
并且因为常规字符不能直接被允许(?
逃避<
没有意义(即(?\\<blabla\\>)
是不正确的)。
如果你想匹配文字序列?<bla>
,你需要逃避?
,而不是<
和所有其他情况<
和>
没有特殊含义。
在这个表达式中,它们不需要转义,因为它们不会包含在单词中 。 如果你的表达式更像是(?<body>.*?)
那么它会做什么就是捕获.*?
并将其命名为body
。
在这种情况下,它并不是绝对必要的,但是如果你确实逃避了,你肯定清楚你的意思,而当你在6个月后审查你的代码或者其他人阅读它时,逃避可能会引起对意义的怀疑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.