Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Regex only returning partial data

by johngg (Canon)
on Jun 06, 2008 at 20:48 UTC ( [id://690760]=note: print w/replies, xml ) Need Help??


in reply to Regex only returning partial data

You can use regex look-around assertions and negated character classes to achieve this.

use strict; use warnings; my $rxTitle = qr {(?x) # Use extended syntax (?<=-\s) # If preceded by hyphen & space ( # Open capture [^(-]+ # One or more non- opening parentheses # or hyphens (?: # Non-capture group for quantifier [^)]+ # One or more non- closing parentheses \) # Followed by a closing parenthesis )? # Quantify, zero or one of ) # Close capture (?=\s?</title>) # If followed by optional space and # closing title tag }; while ( <DATA> ) { my ( $text ) = m{$rxTitle}; print qq{$text\n}; } __END__ <title>GRP -134 - Grinding And Cutting Solution (ACME PR50 - Water Typ +e) </title> <title> GRP-123-1 - Grinding And Cutting Solution (Quakeroat 2780 UTC +- Synthetic Type)</title> <title> GRP-124 - Alkaline Rust Remover Solution</title> <title> GRP-124-1 - Alkaline Rust Remover Solution (Ardvark 185 - Rust + Remover)</title> <title> GRP-124-2 - Alkaline Rust Remover Solution (Ardvark 185L - Rus +t Remover)</title> <title> GRP-124-3 - Alkaline Rust Remover Solution (Bee-Dee J84AL - Ru +st Remover)</title> <title> GRP-124-4 - Alkaline Rust Remover Solution (Mag HD2-202 - Rust + Remover)</title> <title> GRP-124-5 - Alkaline Rust Remover Solution (Turk 4181L - Rust +Remover)</title> <title> GRP-124-6 - Alkaline Rust Remover Solution (Turk 4181 - Rust R +emover)</title> <title> GRP-124-7 - Alkaline Rust Remover Solution (Bee-Dee J84A - Rus +t Remover)</title> <title> GRP-124-8 - Alkaline Rust Remover Solution (Cadilac HTP-1150 - + Rust Remover)</title> <title> GRP-124-9 - Alkaline Rust Remover Solution (Cadilac HTP-1150L +- Rust Remover)</title> <title> GRP-124-10 - Alkaline Rust Remover (Titanium Long Soak)</title +>

The output.

Grinding And Cutting Solution (ACME PR50 - Water Type) Grinding And Cutting Solution (Quakeroat 2780 UTC - Synthetic Typ Alkaline Rust Remover Solution Alkaline Rust Remover Solution (Ardvark 185 - Rust Remover) Alkaline Rust Remover Solution (Ardvark 185L - Rust Remover) Alkaline Rust Remover Solution (Bee-Dee J84AL - Rust Remover) Alkaline Rust Remover Solution (Mag HD2-202 - Rust Remover) Alkaline Rust Remover Solution (Turk 4181L - Rust Remover) Alkaline Rust Remover Solution (Turk 4181 - Rust Remover) Alkaline Rust Remover Solution (Bee-Dee J84A - Rust Remover) Alkaline Rust Remover Solution (Cadilac HTP-1150 - Rust Remover) Alkaline Rust Remover Solution (Cadilac HTP-1150L - Rust Remover) Alkaline Rust Remover (Titanium Long Soak)

I hope this is useful.

Cheers,

JohnGG

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://690760]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (2)
As of 2025-03-16 13:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When you first encountered Perl, which feature amazed you the most?










    Results (54 votes). Check out past polls.