繁体   English   中英

在C#正则表达式中,是否少于和大于需要逃脱?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM