Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net NET的Perl正则表达式库_.net_Regex - Fatal编程技术网

.net NET的Perl正则表达式库

.net NET的Perl正则表达式库,.net,regex,.net,Regex,关于将“Perl正则表达式”(例如PCRE风格)转换为.NET风格(参见示例)存在一些问题,但是否有一个.NET库可以将Perl正则表达式原封不动并直接使用它?也就是说,替代.NET正则表达式库?PErl正则表达式总是比大多数其他正则表达式库具有更广泛的功能集。但是,如果您将表达式保持在某种合理的级别,即不尝试从表达式内部调用代码,而是尝试匹配“常规”(与“上下文无关”)语言,那么.NET和Perl的功能应该基本相同。使用C#的原始字符串语法(@“…”),您甚至可以避免在其他语言(如Java或P

关于将“Perl正则表达式”(例如PCRE风格)转换为.NET风格(参见示例)存在一些问题,但是否有一个.NET库可以将Perl正则表达式原封不动并直接使用它?也就是说,替代.NET正则表达式库

PErl正则表达式总是比大多数其他正则表达式库具有更广泛的功能集。但是,如果您将表达式保持在某种合理的级别,即不尝试从表达式内部调用代码,而是尝试匹配“常规”(与“上下文无关”)语言,那么.NET和Perl的功能应该基本相同。使用C#的原始字符串语法(
@“…”
),您甚至可以避免在其他语言(如Java或PHP)中出现的反斜杠重复问题。

我知道这个答案来得很晚,但我想您可能还想知道

我还希望能够使用.NET中的PCRE正则表达式,考虑到没有简单的解决方案,我认为这可能是一个做出贡献的好机会。。。所以我开始写图书馆


在这个阶段,它还没有完成,但是最重要的特性已经存在了。现在它通过了PCRE测试套件的一部分(大约1200个测试,它没有通过任何尝试的测试,但我还没有实现所有测试用例)。在制作之前,我不建议将其用于生产用途,但其稳定性足以满足教育目的。

值得注意的是,在您链接的问题中,无需进行转换。OP基本上是问“在Perl中,
s/../
m/../
/…/
语法意味着什么?”这两个正则表达式库之间的模式本身是相同的。除了Perl,您不能在任何其他语言中运行任意Perl正则表达式。您可以使用PCRE接近tho。使用.NET中的PCRE应该不是不可能的。我已经更新了这个问题,使之更加精确(我模糊地使用了术语“Perl正则表达式”)。是的,像.NET的PCRE库之类的东西会很棒,你能推荐一个吗?谢谢,但它并不能真正回答我的问题。。。Phalanger可能是我的希望-他们现在花在将PHP正则表达式转换为.NET正则表达式上的时间比实现整个正则表达式引擎可能需要的时间要多,这样他们可能最终会拥有自己的正则表达式。您使用的是哪种正则表达式,需要如此精确的Perl支持。据我所知,PHP与Perl的关系并没有.NET那么密切。PHP使用PCRE风格,而.NET则没有。我对了解所有差异不感兴趣(其中有相当多的差异,有些非常微妙,这可能会使事情变得更糟,而不是更好),这就是为什么我要为.NET寻找一个与PCRE兼容的regexp库。很好的努力,我非常需要它。祝你好运!干得好,卢卡斯,我要把它拿出来转一圈。:)@zx81听到这个消息我很高兴。:)lib现在比我发布这个答案时成熟得多,但由于缺乏任何反馈,我还是把它留在了v0.X mailny。(哦,很抱歉没有文档,这是我在游戏中的懒惰;@Lucastzesniewski文档不是问题:这个页面有。我一直在旁敲侧击,但这周我的待办事项清单上有关于你的lib的实验。:)@zx81是的,我想任何想使用这样一个库的人都必须在某种程度上熟悉PCRE;)