[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 584
  • Last Modified:

tcl+ regexp

Hello,
   I have a question regd regexp in TCL.  

 There is a sring   var = " 1 ABC 2 BCN 3 NNN ooo llll mmm "
  I have to grep [NUMBERS] [ CAPS LETTESR] .
so i'm using  regexp { [0-9]+ [A-z]+ } $var var1
but it greps only 1 ABC . I need to grep all (i.e) 2 BCN 3 NNN
any simple logic or any power usage in regexp.Pls reply

0
n_uthra25
Asked:
n_uthra25
  • 3
  • 3
  • 2
1 Solution
 
leflonCommented:
Hi n_uthra25,

{[0-9]+[ 0-9A-Z]+}
will match any string starting with a number, followed by any combination of blanks, numbers or uppercase letters.
this should match "1 ABC 2 BCN 3 NNN " (ifear it will include the last blank)

leflon
0
 
n_uthra25Author Commented:
Hello Lefon,
   If you see in $var1 we will find only 1 ABC . But i need 2 BCN 3 NNN ( all the possibilities)  in some variable var2 var3.. so how do to .
  Hope you know regexp always grep first string.

0
 
leflonCommented:
n_uthra25,

ahhh, got it (at last) :)
checking..... (will take some time)

leflon
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
FishMongerCommented:
I don't know what the differences are between TCL's regex engine and Perl's but this is how I'd do it with Perl.

(@vars) = $var =~ /\G\s*(\d+\s+[A-z]+)/g;
0
 
FishMongerCommented:
This is the test code I used and its output.


#!/usr/bin/perl -w

use Data::Dumper;

$var = " 1 ABC 2 BCN 3 NNN";

(@vars) = $var =~ /\G\s*(\d+\s+[A-z]+)/g;
print Dumper @vars;

----- output -----
$VAR1 = '1 ABC';
$VAR2 = '2 BCN';
$VAR3 = '3 NNN';
0
 
n_uthra25Author Commented:
Hello FishMonger,
   I would really appreciate if could get it in TCL.

0
 
leflonCommented:
hi n_uthra25

if i get it right you can use the -inline and -all switches of the regexp to get a list with all matches

with set var " 1 ABC 2 BCN 3 NNN ooo llll mmm "
regexp -all -inline -- {[0-9]+ [A-z]+} $var
  => {1 AAA} {2 BCN} {3 NNN}

hth
leflon
0
 
n_uthra25Author Commented:
great..Thanks for your reply..
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 3
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now