gpt4 book ai didi

c# - 如何在 C# 正则表达式中使用内联修饰符?

转载 作者:IT王子 更新时间:2023-10-29 04:53:09 26 4
gpt4 key购买 nike

如何使用内联修饰符代替 RegexOptions.Option

例如:

Regex MyRegex = new Regex(@"[a-z]+", RegexOptions.IgnoreCase);

如何使用内联字符 i 重写它?

http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx

最佳答案

您可以按如下方式使用内联修饰符:

// case insensitive match
Regex MyRegex = new Regex(@"(?i)[a-z]+"); // case insensitive match

或者,通过添加减号来反转修饰符的含义:

// case sensitive match
Regex MyRegex = new Regex(@"(?-i)[a-z]+"); // case sensitive match

或者,打开和关闭它们:

// case sensitive, then case-insensitive match
Regex MyRegex = new Regex(@"(?-i)[a-z]+(?i)[k-n]+");

或者,您可以使用 mode-modifier span 语法,使用冒号 : 和分组括号,将修饰符的范围限定为该组:

// case sensitive, then case-insensitive match
Regex MyRegex = new Regex(@"(?-i:[a-z]+)(?i:[k-n]+)");

您可以像这样一次性使用多个修饰符 (?is-m:text),或者如果您发现更清晰的 (?i)(?s)( ?-m)text(我不知道)。当您使用开/关切换语法时,请注意修饰符一直有效到下一个开关或正则表达式结束。相反,使用模式修改的跨度,在跨度之后将应用默认行为。

最后:the allowed modifiers in .NET are (使用减号反转模式):

x 允许空格和注释
s 单行模式
m 多行模式
i 不区分大小写
n 仅允许显式捕获(特定于 .NET)

关于c# - 如何在 C# 正则表达式中使用内联修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com