我有如下代码,其中“QualifiedInstanceFilter”是合格实例过滤器的访问器。谁能告诉我 m_afc.QualifiedInstanceFilter = "^(" + Regex.Escape(this.Identifier) + ")$"; 行中发生的逻辑是什么?
这是完整的代码
public override string Identifier
{
get
{
return string.Format("{0}{1}{2}{3}{4}",
Owner.Class,
IDSeparator,
ManagedClass.Name, IDClassNameSeparator, Instance);
private AlertFilter m_afc = new AlertFilter("", "", true, "", "", "");
m_afc.QualifiedInstanceFilter = "^(" + Regex.Escape(this.Identifier) + ")$";
Regex.Escape
是否可以“转义”可能包含正则表达式中具有特殊含义的字符的字符串。例如(一个简单的例子):
假设我想根据用户输入搜索字符串。人们会认为我可以写一个正则表达式,比如".*" + UserInput + ".*"
。问题是如果用户搜索“$money”怎么办?这$
在正则表达式中具有特殊含义,因此产生此正则表达式:.*$money.
- 这是不正确的。
如果我们使用Regex.Escape
在此之前,然后$
角色将被转义以避免这种行为。
您可以从以下位置了解更多信息文档 http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.escape.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)