seth_not@home: Reg Exp

Beitrag lesen

gudn tach!

Warum geht es nicht so:

if ($line =~ /[\w-]+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+(\w+)\s+(?!SMPL)/ )
{
print "$line => $1";
}

das kannst du selbst ganz einfach herausfinden:

$_='X-A    ca  1  19  101 10     1   a1f SMPL blabla';  
print '>'.$&.'<' if /[\w-]+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+(\w+)\s+(?!SMPL)/;"  
# prints: >ca  1  19  101 10     1   a1f SMPL <

wenn's noch nicht klar ist:

$_='X-A    ca  1  19  101 10     1   a1f SMPL blabla';  
print '>'.$1.'<' if /([\w-]+)\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+(\w+)\s+(?!SMPL)/;"  
# prints: >ca<

je nach genauem problem koennte es dir evtl. helfen, mit "^" einen anker beim stringbeginn zu werfen, also
  /[1]+.../

prost
seth


  1. \w- ↩︎