getting partial find expressions into variables

Get help using and writing Nisus Writer Pro macros.
Post Reply
js
Posts: 229
Joined: 2007-04-12 14:59:36

getting partial find expressions into variables

Post by js » 2007-07-17 00:48:54

With a selection containing an e-mail address, is it possible to get what is before and what is after the at sign into two variables?
Or to ask differently: If I do a find for that selection like

Code: Select all

Find '(.+)@(.+)', 'Es'
is it possible to get \1 and \2 into macro-variables with which to continue the macro?

Thanks for any help

User avatar
martin
Official Nisus Person
Posts: 4359
Joined: 2002-07-11 17:14:10
Location: San Diego, CA
Contact:

Post by martin » 2007-07-17 01:36:35

Unfortunately there is no simple way to do this (as there is in Perl), but if you break into Perl you have several options. Probably the easiest is to simply have Perl repeat the regular expression:

Code: Select all

$expression = '(\S+)@(\S+)' 
Find $expression, "E" 
$found = Read Selection 
$found1 = '' 
$found2 = '' 
Begin Perl 
   $found =~ /$expression/; 
   $found1 = $1; 
   $found2 = $2; 
End 
Prompt "Found user '$found1' at domain '$found2'"

User avatar
martin
Official Nisus Person
Posts: 4359
Joined: 2002-07-11 17:14:10
Location: San Diego, CA
Contact:

Post by martin » 2007-07-17 01:39:04

Oh, and I'll definitely file this as a feature request!

rcgordon
Posts: 32
Joined: 2003-07-22 01:31:29

Post by rcgordon » 2007-07-18 00:12:52

Yes. And in addition to the value, a pointer to the selection would be great. Or to expand on that idea further, the ability to return found objects as a list of selection offsets (or object references, as I would think of them) would open up great possibilities.

Post Reply