3

我想将正则表达式选项作为用户的输入,并且我正在使用复选框进行输入,如下所示:

[ ]IngoreCase  
[ ]Multiline  
[ ]Sigleline  
[ ]RightToLeft  

等等

我的问题是如何根据用户选择的选项传递参数(RegexOptions)。

谢谢,
阿米特

4

2 回答 2

3

使用Enum.GetNames

string[] names = Enum.GetNames(typeof(RegexOptions));

并从字符串返回枚举

var option = (RegexOptions)Enum.Parse(typeof(RegexOptions), "IgnoreCase");
于 2013-05-22T08:29:49.607 回答
3

当您使用这些选项时,您将它们“或”在一起成为一个值。无需在 regex 调用中的 1 条语句中执行此操作,您可以使用以下内容:

var options = RegexOptions.None;
if (checkBoxIgnoreCase.Checked) options = options | RegexOptions.IgnoreCase;
if (checkBoxMultiLine.Checked) options = options | RegexOptions.MultiLine;
// etc.

options在您的Regex.Match.

于 2013-05-22T08:54:31.247 回答