Hello All,
To be more specific here is what i am trying to do is -
 
declare function local:a($str as xs:string) as xs:string
{
  fn:replace($str, '  ','_')
};
 
let $str := 'John Doe, ref. nat. dr. med. vet. three ref. nat.'
let $newstr := fn:replace($str,'\s+','  ','i')
let $regexp := "(^| )(dr\.|ref\.  nat\.|med.  vet.  three)( |$)"
return  fn:replace($newstr,$regexp,local:a('$2'),'i')
 
 
i need to pass only the value of $2  wrt to the replace function (i.e ref.  
nat. , 
dr. , med.  vet.  three , ref.  nat.) to the function which would replace the 
double space with a underscore but the literal '$2' gets passed to the function 
if i try local:a($2) it complains for a syntax error.
 
Is there any possible solution that i can use?
 
Thanks and Regards,
Sai.


--- On Thu, 6/3/10, sai shanker <[email protected]> wrote:


From: sai shanker <[email protected]>
Subject: [MarkLogic Dev General] xquery equivalent for perl code
To: "General Mark Logic Developer Discussion" <[email protected]>
Date: Thursday, June 3, 2010, 3:30 PM







Hello All,
 
 I am trying to convert the following perl code into xquery. but am not getting 
the expected result. Can you please help me out?
Overview:- I am trying to append an underscore between multitoken titles.
Perl code:-
 
$str='John Smith, ref. nat. dr. med. vet. three ref. nat.';
print "$str\n";
$str =~ s/\s+/  /g;
print "$str\n";
sub a { my $title = shift; print "title=$title\n"; $title =~ s/  /_/g; 
return($title); }
$str =~ s/(^| )(dr\.|ref\.  nat\.|med.  vet.  three)( |$)/$1 . a($2) . $3/eg;
$str =~ s/\s+/ /g;
print "$str\n";
 
output --- 'John Smith, ref._nat. dr. med._vet._three ref._nat.
 
Thanks and Regards,
Sai.
 
 
 
 

-----Inline Attachment Follows-----


_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general



      
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to