我有一个 RegEx,它在 *NIX 系统和支持扩展正则表达式 (ERE) 的语言上运行良好。我还没有找到支持 ERE 的免费 .NET 库,我也没有幸运地尝试将其转换为非 ERE 并获得相同的结果。这是正则表达式:
^\+(<{7} \.|={7}$|>{7} \.)
背景:RegEx 的目的是识别给定字符串是否具有来自 Unresolved 颠覆合并的标记。
最佳答案
It looks to me像 ERE 语法大部分向上兼容 .NET 的正则表达式风格,就像它与大多数其他“Perl 兼容”风格(Perl、PHP、Python、JavaScript、Ruby、Java...)一样。换句话说,您可以在 ERE 正则表达式中执行的任何操作,也应该能够在相同的 .NET 正则表达式中执行。当然是你的例子:
^\+(<{7} \.|={7}$|>{7} \.)
在 .NET 中的含义与在 ERE 中的含义相同。我能看到的唯一主要异常(exception)是在 POSIX bracket expressions 区域。 ; .NET 遵循 Unicode 标准。
当您去应用正则表达式时,事情就会真正变得不同。在 C# 中,您可以像这样应用该正则表达式:
string result = Regex.Match(targetString, @"^\+(<{7} \.|={7}$|>{7} \.)").Value;
C# 的 verbatim strings 让您不必像在某些其他语言的字符串文字中那样转义反斜杠;您只需将引号加倍即可转义引号:
@"He said, ""Look out!""";
这是否回答了您的问题?
关于c# - 将扩展正则表达式转换为 .NET 兼容的 RegEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1349644/