<br>&nbsp;&nbsp;&nbsp; Yes, the drools parser is more restrictive in that point as to avoid mistakes. <br>&nbsp;&nbsp;&nbsp; Just a minor comment on your e-mails, this is purely a drools parser issue, and not an mvel issue. If you select java dialect, but uses the &quot;matches/not matches&quot; operator, it will be executed by java underneath (not mvel), but the parser is the one that builds the string to be sent to the java for processing.
<br>&nbsp;&nbsp;&nbsp; We thought it was much more readable to use non-escaped &#39;\&#39; than doing it the java way. Imagine some not-so-techie users having to deal with the sequences of &#39;\&#39; that sometimes we need to deal with in java regexps.
<br><br>&nbsp;&nbsp;&nbsp; []s<br>&nbsp;&nbsp;&nbsp; Edson<br><br><div><span class="gmail_quote">2007/11/15, 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="blue" lang="EN-US">

<div>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Thanks a lot Edson. I had escaped
characters that don't need to be escaped which works in Java but not in
mvel (error: no viable alternative at character &#39;\&#39;).</span></font></p>

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

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Java: </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">
&quot;^[a-zA-Z0-9\\#]$&quot;</span></font><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"></span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">mvel: </span></font><font color="green" face="Courier New" size="1"><span style="font-size: 9pt; color: green;">
&quot;^[a-zA-Z0-9#]$&quot;</span></font><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"></span></font></p>

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

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

<div>

<div style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">

<hr align="center" size="2" width="100%">

</span></font></div>

<p><b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; font-weight: bold;">From:</span></font></b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">
<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users-bounces@lists.jboss.org</a>] <b><span style="font-weight: bold;">On
Behalf Of </span></b>Edson Tirelli<br>
<b><span style="font-weight: bold;">Sent:</span></b> Thursday, November 15, 2007
7:47 AM<br>
<b><span style="font-weight: bold;">To:</span></b> Rules Users List<br>
<b><span style="font-weight: bold;">Subject:</span></b> Re: [rules-users] mvel
regex not working???</span></font></p>

</div><div><span class="e" id="q_11645eeaf55d0841_1">

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

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><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: </span></font><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;</p>

<div>

<p><span><font face="Times New Roman" size="3"><span style="font-size: 12pt;">2007/11/14, Carlsen, Len &lt;<a href="mailto:len.carlsen@ubc.ca" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">len.carlsen@ubc.ca
</a>&gt;:</span></font></span></p>

<div link="blue" vlink="purple">

<div>

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

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

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">I
have an email validation regex where the mvel matches doesn&#39;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&#39;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; font-family: Arial;">&nbsp;</span></font></p>

<p><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></p>

<p><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></p>

<p><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></p>

<p><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> </p>

<p><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></p>

<p><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></p>

<p><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><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="Courier New" size="1"><span style="font-size: 9pt;">&nbsp;</span></font></p>

<p><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></p>

<p><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></p>

<p><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></p>

<p><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></p>

<p><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></p>

<p><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><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; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Here&#39;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: 7.5pt; color: black;"> </span></font></p>

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

<p><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></p>

<p><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></p>

<p><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></p>

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

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">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; font-family: Arial;">&nbsp;</span></font></p>

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

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

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

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

</div>

</div>

<p style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://lists.jboss.org/mailman/listinfo/rules-users</a></span></font></p>

</div>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">www.jboss.com</a>
</span></font></p>

</span></div></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>