metapattern extraction in PERL


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting metapattern extraction in PERL
# 1  
Old 10-18-2007
metapattern extraction in PERL

Hi,

I want to extract some part of a pattern that matches my requirement in a string with PERL. A case in point is a string like:
$eqtst="abh nmae res = 10 s abh nmae req = 10 s";
from which I want the words preceding the "=" symbol.
Previously I was assured that there would be only 2 such "=" symbols in a string and so I used sthg like:
$eqtst =~ /\s+(\w+)\s*=.*\s+(\w+)\s*=/
the "()" extracted the words "res", "req" into variables $1, $2 respectively. And life was good Smilie.
Now however the number of "=" symbols arent limited (might exceed 2 in a string). How do I go about extracting the words which precede "=" now?

Thanks,
Abhishek
# 2  
Old 10-19-2007
Can't you run the regexp inside a loop and catch all of them?
# 3  
Old 10-19-2007
I could, but...

Quote:
Originally Posted by cbkihong
Can't you run the regexp inside a loop and catch all of them?
I could. But then
(1) I need to modify the regexp I am now using to catch one such occurence (it catches 2 occurences now). For every loop I need to chop off the part of the string I have already seen, so that the same word doesnt get assigned to $1.
(2) This is PERL Smilie Isnt there a one-liner somewhere?

Thanks,
Abhishek
# 4  
Old 10-19-2007
Quote:
Originally Posted by Abhishek Ghose
Hi,

I want to extract some part of a pattern that matches my requirement in a string with PERL. A case in point is a string like:
$eqtst="abh nmae res = 10 s abh nmae req = 10 s";
from which I want the words preceding the "=" symbol.
Previously I was assured that there would be only 2 such "=" symbols in a string and so I used sthg like:
$eqtst =~ /\s+(\w+)\s*=.*\s+(\w+)\s*=/
the "()" extracted the words "res", "req" into variables $1, $2 respectively. And life was good Smilie.
Now however the number of "=" symbols arent limited (might exceed 2 in a string). How do I go about extracting the words which precede "=" now?

Thanks,
Abhishek
regular expressions, though powerful, are not always the solution to a problem.
Code:
$test="abh nmae res = 10 s abh nmae req = 10 s";
@a = split("=",$test);
print $a[0],$a[1];

# 5  
Old 10-19-2007
Not really understand why you don't use a loop. In fact, it is far simpler than you think:

Code:
#!/usr/bin/perl -w

$test = "abh name res = 10 s abh nmae req = 10 s";
while ($test =~ /([^\s]+)\s*=\s*[^\s]+/g) {
	print ">> $1\n";
}

Which captures "res" and "req". And this will handle any number of =.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl-extraction using windows cmd

Hi, I need to extract Password expires from the output of windows command print `net user %USERNAME% /domain`; in perl. So i want to redirect the output of this win-cmd to a file and try extracting Password expires along with its value. i'm trying with this code but getting errors. #!usr/bin/perl... (1 Reply)
Discussion started by: sam_bd
1 Replies

2. Shell Programming and Scripting

perl extraction of code between comments /* .. */

Hi, I am using the following code to retrieve the contents between C-style comments "/* .. */". perl -lne 'while(/(\/\*.*?\*\/)/g) {print "$1";}' This works fine when the commented section of code is present in a single line. But I also need to extract the data which is present inside... (3 Replies)
Discussion started by: royalibrahim
3 Replies

3. Shell Programming and Scripting

Data Extraction problem in perl

Hello, I want to extract the words from a file which starts with SRD-R or SRD-DR. I have written a script which is able to trace the word but it is printing the whole line. sub extract_SRD_tag{ my ($tag, $app, $path, @data, $word ); $path = shift; $app = shift; open (FILE, $path) or... (2 Replies)
Discussion started by: suvendu4urs
2 Replies

4. Shell Programming and Scripting

Data extraction in perl variable

HI, i have variable in perl like below $tmp="/home/sai/automation/work/TFP_GN.txt" it can conatain any path its filled from config file. now i want extarct the path upto this /home/sai/automation/work/ and put it in another variable say... (4 Replies)
Discussion started by: raghavendra.nsn
4 Replies

5. Shell Programming and Scripting

extraction

I have following input @xxxxxx@ I want to extract what's between @....@ that is : xxxx using SED command (6 Replies)
Discussion started by: xerox
6 Replies

6. Shell Programming and Scripting

Function extraction in PERL

the log contains mathematical operation as follows fm_void_mathematics : PCM_OP_MATHS input function PIN_FLD_NUM1 INT 1 PIN_FLD_NUM2 INT 2 PIN_FLD_RESULTS int PIN_FLD_OUT INT * D Wed Sep 16 05:40:22 2009 solaris_testing fm_void_add : PIN_FLD_SUM int 3 D Wed Sep 16 05:40:22 2009... (1 Reply)
Discussion started by: vkca
1 Replies

7. Shell Programming and Scripting

Perl function extraction

The log file reads as follows. D function_add() ADD input data 1021214 0 VAR1 STR 10 0 VAR2 STR 20 0 VAR3 STR 1 SUM=VAR1+VAR2 D function_add() ADD output data 1021267 0 DISPLAY SUM D function_sub() SUB input data 1021214 0 VAR1 STR 10 0 VAR2 STR 20 0 VAR3 STR 1 sub=VAR1-VAR2 D... (2 Replies)
Discussion started by: vkca
2 Replies

8. Shell Programming and Scripting

String Extraction in Perl

I have a string stored in a variable. For instance, $str = " Opcode called is : CM_OP_xxx " where xxx changes dynamically and can be either LOGIN or SEARCH..... depends on runtime. For example : $str = " Opcode called is : CM_OP_SEARCH " $str = " Opcode called is : CM_OP_LOGIN " I... (3 Replies)
Discussion started by: vkca
3 Replies

9. Shell Programming and Scripting

AWK extraction

Hi all, I have a data file from which i would like to extract only certain fields, which are not adjacent to each other. Following is the format of data file (data.txt) that i have, which has about 6 fields delimited by "|" HARRIS|23|IT|PROGRAMMER|CHICAGO|EMP JOHN|35|IT|JAVA|NY|CON... (2 Replies)
Discussion started by: harris2107
2 Replies

10. Shell Programming and Scripting

Optimize/speed-up perl extraction

Hi, Is there a way I can extract my data faster. You know my data is 1.2 GB text file with 8Million rows with 38 columns/fields. Imagine how huge this is. How I can optimized the data extraction using perl. That is why I'm creating a script to filter only those informations that I need. Is... (3 Replies)
Discussion started by: pinpe
3 Replies
Login or Register to Ask a Question