在.net中增加了移除RegEx选项

本文关键字:RegEx 选项 net 增加 | 更新日期: 2023-09-27 18:14:59

我想把正则表达式选项作为用户的输入,我使用复选框来接受输入,它看起来像下面的东西:

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

等。

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

谢谢,
Amit

在.net中增加了移除RegEx选项

当您使用这些选项时,您将它们"OR"到一个单独的值。不需要在regex调用中的一条语句中这样做,您可以使用以下内容:

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

并在您的Regex.Match中使用该options

使用Enum。getname

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

和从string返回到enum

var option = (RegexOptions)Enum.Parse(typeof(RegexOptions), "IgnoreCase");