Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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
C# 使用Drools进行数据解析/模式匹配_C#_.net_Drools - Fatal编程技术网

C# 使用Drools进行数据解析/模式匹配

C# 使用Drools进行数据解析/模式匹配,c#,.net,drools,C#,.net,Drools,我是.Net和Drools的初学者。我将Drools 3.0用于.Net应用程序。我试图解析变量的数据(字段:-主题/主体和类:-EmailProperties) 例:如果 Text=“安乐是一名.Net开发人员,正在尝试使用解析器。” 所以我想要“parser”或“.Net”字作为输出 我在互联网上搜索过,发现我们可以通过使用“matches”关键字和正则表达式来实现。为此,我使用了以下正则表达式:- rule "Hello" when //m: EmailProper

我是.Net和Drools的初学者。我将Drools 3.0用于.Net应用程序。我试图解析变量的数据(字段:-主题/主体和类:-EmailProperties)

例:如果 Text=“安乐是一名.Net开发人员,正在尝试使用解析器。” 所以我想要“parser”或“.Net”字作为输出

我在互联网上搜索过,发现我们可以通过使用“matches”关键字和正则表达式来实现。为此,我使用了以下正则表达式:-

rule "Hello"
    when
        //m: EmailProperties(Body.indexOf(".Net"))
        //m: EmailProperties(Body matches  "(?i)(?s)\w.*Developer.*")
        //  m: EmailProperties(Body matches  "/^Developer$/")
        // m: EmailProperties(Subject == "Open Position")
         m: EmailProperties(Subject matches "/^Position$/")
    then
        EmailProperties.debugResult("Hello Brother This is testing for Rules Engine");
end
我点击了以下链接:-

问题:-

一,。。我做错了什么

二,。。使用Drools和.Net实现解析还有其他方法吗

3。。我将Drools 3用于.Net应用程序。每当我在.Net/Drools中编写正则表达式时,我是否需要注意这一点,或者无论它是java、.Net还是任何其他应用程序,它在任何地方都是一样的??正则表达式是否与技术不同


谢谢

使用Drools操作符匹配,您不必使用锚定“^”和$,因为匹配(如在Java中)模式会根据该模式匹配整个目标字符串

如果希望模式与目标字符串的子字符串匹配,则必须将模式括在
*
中。(这意味着可以匹配任意字符序列。)

您可以使用indexOf来实现这一点,但是您应该知道,即使字符串包含包含您想要查找的子字符串,这也会匹配。例如,如果目标字符串包含例如“.Netstocking”,indexOf(“.Net”)将返回非负结果

使用Drools进行解析可以通过多种方式实现。在一系列单词(或标记)中搜索字符串可能会产生令人惊讶的结果。一种非常健壮的方法是将文本切分为单词,然后逐个处理单词。然后规则可以根据序列号匹配单词,因为,例如,“绿色村庄”与“绿色村庄”不同

至于你的最后一个问题:正则表达式在技术上有很大的不同。Java(以及Drools)使用一组相对渐进的通配符和构造。Perl处于最前沿。UNIX实用程序(grep、awk)有点落后了。XQuery 1.0/XPath 2.0没有Java的所有特性。(事情变了。也许我忽略了最近的发展。)