<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

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

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

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

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

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Len<o:p></o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

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

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

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
rules-users-bounces@lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] <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><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><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 '\' to escape
escape-codes. See the examples bellow: <br>
<br>
java: </span></font><font size=1 color=green face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:green'>&quot;^[a-zA-Z0-9\\!\\#\\$\\%\\&amp;]&quot;<br>
</span></font>equivalent drools regexp: <font size=1 color=green
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:green'>&quot;^[a-zA-Z0-9\!\#\$\%\&amp;]&quot;</span></font><br>
<br>
&nbsp;&nbsp; If you change your regexp to use single '\' instead of double, it
should work fine.<br>
<br>
&nbsp;&nbsp;&nbsp; []s<br>
&nbsp;&nbsp;&nbsp; Edson <br>
&nbsp;<o:p></o:p></p>

<div>

<p class=MsoNormal><span class=gmailquote><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>2007/11/14, Carlsen, Len &lt;<a
href="mailto:len.carlsen@ubc.ca">len.carlsen@ubc.ca</a>&gt;:</span></font></span><o:p></o:p></p>

<div link=blue vlink=purple>

<div>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Hi,</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>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><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

<p><b><font size=1 color="#960000" face="Courier New"><span style='font-size:
9.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>rule</span></font></b><font
size=1 color=black face="Courier New"><span style='font-size:9.0pt;font-family:
"Courier New";color:black'> </span></font><font size=1 color=green
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:green'>&quot;Test1&quot;</span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span></font><b><font
size=1 color="#960000" face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'>when</span></font></b><o:p></o:p></p>

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

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

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><b><font size=1 color="#960000" face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:#960000;font-weight:
bold'>eval</span></font></b><font size=1 color=black face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:black'>( !email.</span></font><b><font
size=1 color="#960000" face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'> matches</span></font></b><font
size=1 color=black face="Courier New"><span style='font-size:9.0pt;font-family:
"Courier New";color:black'>( </span></font><font size=1 color=green
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:green'>&quot;^[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+(\\.[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+)*@[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 size=1 color=black face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:black'>) )</span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span></font><b><font
size=1 color="#960000" face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'>then</span></font></b><o:p></o:p></p>

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

<p><b><font size=1 color="#960000" face="Courier New"><span style='font-size:
9.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>end</span></font></b><font
size=1 face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New"'>
</span></font><o:p></o:p></p>

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

<p><b><font size=1 color="#960000" face="Courier New"><span style='font-size:
9.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>rule</span></font></b><font
size=1 color=black face="Courier New"><span style='font-size:9.0pt;font-family:
"Courier New";color:black'> </span></font><font size=1 color=green
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:green'>&quot;Test2&quot;</span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span></font><b><font
size=1 color="#960000" face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'>when</span></font></b><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=1 color=olive face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:olive'>// This doesn't
work </span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
email : String( toString </span></font><b><font size=1 color="#960000"
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:#960000;font-weight:bold'>not</span></font></b><font size=1 color=black
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:black'> </span></font><b><font size=1 color="#960000" face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:#960000;font-weight:
bold'>matches</span></font></b><font size=1 color=black face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:black'> </span></font><font
size=1 color=green face="Courier New"><span style='font-size:9.0pt;font-family:
"Courier New";color:green'>&quot;^[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+(\\.[a-zA-Z0-9\\!\\#\\$\\%\\&amp;\\'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+)*@[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 size=1 color=black face="Courier New"><span
style='font-size:9.0pt;font-family:"Courier New";color:black'>)</span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; </span></font><b><font
size=1 color="#960000" face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'>then</span></font></b><o:p></o:p></p>

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

<p><b><font size=1 color="#960000" face="Courier New"><span style='font-size:
9.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>end</span></font></b><font
size=1 face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New"'>
</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Here's
the output using email addresses </span></font><font size=1 color=black
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:black'><a href="mailto:x.x@x.com" target="_blank">x.x@x.com</a> </span></font><font
size=1 color=black><span style='font-size:9.0pt;color:black'>(valid)</span></font><font
size=1 color=black face="Courier New"><span style='font-size:9.0pt;font-family:
"Courier New";color:black'> </span></font><font size=1 color=black><span
style='font-size:9.0pt;color:black'>and</span></font><font size=1 color=black
face="Courier New"><span style='font-size:9.0pt;font-family:"Courier New";
color:black'> <a href="http://x.xx.com" target="_blank">x.xx.com</a> </span></font><font
size=1 color=black><span style='font-size:9.0pt;color:black'>(invalid)</span></font><font
size=2><span style='font-size:10.0pt'>:</span></font><font size=1 color=black
face="Courier New"><span style='font-size:7.5pt;font-family:"Courier New";
color:black'> </span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>test1-Invalid Email Address: <a
href="http://x.xx.com" target="_blank">x.xx.com</a></span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>test2-Invalid Email Address: <a
href="mailto:x.x@x.com" target="_blank">x.x@x.com</a></span></font><o:p></o:p></p>

<p><font size=1 color=black face="Courier New"><span style='font-size:9.0pt;
font-family:"Courier New";color:black'>test2-Invalid Email Address: <a
href="http://x.xx.com" target="_blank">x.xx.com</a></span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Thanks,</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Len</span></font><o:p></o:p></p>

<p><font size=3 face=Arial><span style='font-size:12.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

</div>

</div>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'><br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><o:p></o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><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>
<o:p></o:p></span></font></p>

</div>

</body>

</html>