<br>&nbsp;&nbsp; Len,<br><br>&nbsp;&nbsp; When you use code inside eval(), it is executed in the chosen dialect (default is java). So, the regexp of your first rule is parsed and executed in java and is correct.<br>&nbsp;&nbsp; When you use code outside eval(), it is parsed by the Drools parser and the drools parser do not require the extra &#39;\&#39; to escape escape-codes. See the examples bellow:
<br><br>java: <font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">&quot;^[a-zA-Z0-9\\!\\#\\$\\%\\&amp;]&quot;<br></span></font>equivalent drools regexp: <font color="green" face="Courier New" size="1">
<span style="font-size: 9pt; color: green;">&quot;^[a-zA-Z0-9\!\#\$\%\&amp;]&quot;</span></font><br><br>&nbsp;&nbsp; If you change your regexp to use single &#39;\&#39; instead of double, it should work fine.<br><br>&nbsp;&nbsp;&nbsp; []s<br>&nbsp;&nbsp;&nbsp; Edson
<br>&nbsp;<br><div><span class="gmail_quote">2007/11/14, Carlsen, Len &lt;<a href="mailto:len.carlsen@ubc.ca">len.carlsen@ubc.ca</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">









<div link="blue" vlink="purple" lang="EN-US">

<div>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">Hi,</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">I
have an email validation regex where the mvel matches doesn't seem to
work. I have created 2 rules where test1 uses the Java String matches and test2
uses the mvel matches. Test1 works but test2 doesn't. I am using Drools
4.0.3 and JDK 1.6.0_02.</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">&nbsp;</span></font></p>

<p style=""><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">rule</span></font></b><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">
 </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">&quot;Test1&quot;</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp; </span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">
when</span></font></b><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><font color="olive" face="Courier New" size="1"><span style="font-size: 9pt; color: olive;">// This works
</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email : String()</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font>
</p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">
eval</span></font></b><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">( !email.</span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">
matches</span></font></b><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">( </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">
&quot;^[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\&#39;\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+(\\.[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\&#39;\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+)*@[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\\.[a-zA-Z]{2,6}$&quot;
</span></font><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;"> ) )</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp; </span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">
then</span></font></b><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println( </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">
&quot;1-Invalid Email Address: &quot;</span></font><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;"> + email );</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;">
</span></font></p>

<p style=""><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">end</span></font></b><font face="Courier New" size="1"><span style="font-size: 9pt;">
</span></font></p>

<p style=""><font face="Courier New" size="1"><span style="font-size: 9pt;">&nbsp;</span></font></p>

<p style=""><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">rule</span></font></b><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">
 </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">&quot;Test2&quot;</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp; </span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">
when</span></font></b><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font><font color="olive" face="Courier New" size="1"><span style="font-size: 9pt; color: olive;">// This doesn&#39;t work
</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; email : String(
toString </span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">not</span></font></b><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">
 </span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">matches</span></font></b><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">
 </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">&quot;^[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\&#39;\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+(\\.[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\&#39;\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+)*@[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\\.[a-zA-Z]{2,6}$&quot;
</span></font><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;"> )</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp; </span></font><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">
then</span></font></b><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println( </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">
&quot;2-Invalid Email Address: &quot;</span></font><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;"> + email );</span></font><font face="Courier New" size="1"><span style="font-size: 9pt;">
</span></font></p>

<p style=""><b><font color="#960000" face="Courier New" size="1"><span style="font-size: 9pt; color: rgb(150, 0, 0); font-weight: bold;">end</span></font></b><font face="Courier New" size="1"><span style="font-size: 9pt;">
</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">Here's
the output using email addresses </span></font><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;"><a href="mailto:x.x@x.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
x.x@x.com</a> </span></font><font color="black" size="1"><span style="font-size: 9pt; color: black;">(valid)</span></font><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;"> </span>
</font><font color="black" size="1"><span style="font-size: 9pt; color: black;">and</span></font><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;"> <a href="http://x.xx.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
x.xx.com</a> </span></font><font color="black" size="1"><span style="font-size: 9pt; color: black;">(invalid)</span></font><font size="2"><span style="font-size: 10pt;">:</span></font><font color="black" face="Courier New" size="1">
<span style="font-size: 9pt; color: black;"></span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">&nbsp;</span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">test1-Invalid Email Address: <a href="http://x.xx.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
x.xx.com</a></span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">test2-Invalid Email Address: <a href="mailto:x.x@x.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
x.x@x.com</a></span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p style=""><font color="black" face="Courier New" size="1"><span style="font-size: 9pt; color: black;">test2-Invalid Email Address: <a href="http://x.xx.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
x.xx.com</a></span></font><font face="Courier New" size="1"><span style="font-size: 9pt;"></span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">The
regex expressions are exactly the same. Am I doing something wrong here?</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">Thanks,</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt;">Len</span></font></p>

<p><font face="Arial" size="3"><span style="font-size: 12pt;">&nbsp;</span></font></p>

</div>

</div>


<br>_______________________________________________<br>rules-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">
https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote></div><br><br clear="all"><br>-- <br>&nbsp;&nbsp;Edson Tirelli<br>&nbsp;&nbsp;Software Engineer - JBoss Rules Core Developer<br>&nbsp;&nbsp;Office: +55 11 3529-6000<br>&nbsp;&nbsp;Mobile: +55 11 9287-5646
<br>&nbsp;&nbsp;JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>