当前位置: 首页 > 编程语言 > C#

ConvertingPerlRegularExpressionsto.NET分享

时间:2023-04-10 22:44:14 C#

ConvertingPerlRegularExpressionsto.NET我在Perl中有一些有用的正则表达式。有没有一种简单的方法可以将它们转换为.NET的正则表达式方言?如果没有,是否有简明的差异参考?在http://www.regular-expressions.info/refflavors.html有一个很好的比较表。大多数基本元素是相同的,不同之处在于:细微差别:一些元素只是Perl:Unicode属性pL和PL简写符号。您必须在.NET中包含大括号,例如p{L}。奇怪的东西,如X、C特殊字符类,如v、V、h、H、N、R反向引用特定或先前组g1、g{-1}。您只能在.NET中使用绝对组索引。命名反向引用g{name}。请改用k。POSIX字符类[[:alpha:]]。分支重置模式(?|…)K改用后视((?)。代码评估断言(?{…}),构建后子表达式(??{…})。子表达式引用(递归模式)(?0),(?R),(?1),(?-1),(?+1),(?&name)。一些条件表达式谓词是特定于Perl的:特殊回溯控制动词(*VERB:ARG)一些元素的Python语法仅适用于.NET:参考资料:它们旨在与Perl5正则表达式兼容。因此,Perl5正则表达式只能在.NET中工作。您可以按如下方式翻译一些RegexOptions:[Flags]publicenumRegexOptions{Compiled=8,CultureInvariant=0x200,ECMAScript=0x100,ExplicitCapture=4,IgnoreCase=1,//Perl中的iIgnorePatternWhitespace=0x20,//PerlMultiline中的x=2,//Perl中的mNone=0,RightToLeft=0x40,Singleline=0x10//Perl中的s}另一个技巧是使用逐字字符串,因此您不需要转义C#中的所有转义字符:stringbadOnTheEyesRx="\d{4}/\d{2}/\d{2}";stringeasierOnTheEyesRx=@"d{4}/d{2}/d{2}";它实际上取决于正则表达式的复杂性——许多都是开箱即用的。查看此.NET正则表达式备忘单,看看操作员是否按照您的预期进行操作。我不知道有什么工具可以自动翻译RegEx方言。以上就是C#学习教程:ConvertingPerlregularexpressionsto.NET分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多加关注---本文收集自网络,不代表侵权,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处: