I'm not sure if the leading ..'s in your example are supposed to be part of the keyword or not. If not, as your example shows, try this:
#! /usr/bin/perl
use strict ;
use warnings ;
my @str = ( 'fdjsflsdfjk foo=123 sdjflsdfjklsfj ',
'sdfhsdfsd bar=42 fkjfjklsfjs',
'zoot=23 ff ',
' nooka=9 '
) ;
foreach (@str)
{
/([[:alnum:]]+)=([[:digit:]]{1,3})(.*)$/ ;
printf "[%s] [%s] [%s]\n", $1, $2, $3 ;
}
Output:
[foo] [123] [ sdjflsdfjklsfj ]
[bar] [42] [ fkjfjklsfjs]
[zoot] [23] [ ff ]
[nooka] [9] [ ]
Otherwise, if you want to capture the beginning of the string up to the = sign as the keyword regardless of content, maybe this is what you want:
#! /usr/bin/perl
use strict ;
use warnings ;
my @str = ( 'fdjsflsdfjk foo=123 sdjflsdfjklsfj ',
'sdfhsdfsd bar=42 fkjfjklsfjs',
'zoot=23 ff ',
' nooka=9 '
) ;
foreach (@str)
{
/^([^=]+)=([[:digit:]]{1,3})(.*)$/ ;
printf "[%s] [%s] [%s]\n", $1, $2, $3 ;
}
Output:
[fdjsflsdfjk foo] [123] [ sdjflsdfjklsfj ]
[sdfhsdfsd bar] [42] [ fkjfjklsfjs]
[zoot] [23] [ ff ]
[ nooka] [9] [ ]
Hope that helps. :-)
_______________
D
a
m
n
D
i
r
t
y
A
p
e
Home Node
|
Email
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.