我有一个使用new Regex(string pattern)构造函数创建的Regex对象,之后是否有办法查看正则表达式对象的创建模式?
我似乎无法访问正则表达式或RegexOptions对象中的"模式"字符串成员.
上下文:我要问的原因是我在初始化时(模式存储在配置文件中)早期创建了一些正则表达式对象,然后将它们传递给另一个经常使用的类.但是,我还需要在运行时将模式字符串与存储在SQL数据库中的字符串进行比较.
除了正则表达式对象之外,我宁愿不必传递带有模式的字符串.我也觉得在启动时创建一次对象并不是一个坏主意,因为正则表达式将被重复使用数百次?
随意提供替代建议.
看起来你不能这样做,因为该Regex.Pattern字段标记为内部.
你说的是创建一次对象并多次重复使用是个好主意,但是将字符串作为另一个参数传递可能是你唯一的选择.
如果你真的想避免这样做,你可以创建一个继承自Regex的新类,然后在构造函数中设置Pattern属性,如下所示:
public class MyRegex : Regex
{
public String Pattern {protected set; get;}
public MyRegex(String Pattern) : Regex(Pattern)
{
this.Pattern = Pattern;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1941 次 |
| 最近记录: |