Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^4: Getting only the link in a line

by iphone (Beadle)
on Nov 04, 2010 at 06:05 UTC ( [id://869402]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Getting only the link in a line
in thread Getting only the link in a line

1.That's a very detailed explanation.but one question,why should we make "." a non-special character?even without it I am able to remove the "." 2.i understand what \S+? does but fail to understand how it removes the terminal period?

Replies are listed 'Best First'.
Re^5: Getting only the link in a line
by kcott (Archbishop) on Nov 04, 2010 at 06:40 UTC

    When you want to match a '.' exactly, you need to remove the special meaning. [.] is one way, \. is another. Here's what happens if you don't remove the special meaning and the URL doesn't have a trailing '.':

    $ perl -wE 'while (<>) { my ($x) = $_ =~ /(https?:\S+?).?\s/; say $x; +}' Bug found in the build. Please check check https://web.com/fluent/x/JI +OUAQ for more details. https://web.com/fluent/x/JIOUA

    In this instance it matches any character; there's no '.' so it matches the 'Q' which you can see has been removed in the output.

    The \S+? does not remove the '.', it captures up to the '.'.

    I've been saying any character throughout - it actually doesn't match a newline unless you use the 's' modifier - see Modifiers in perlre.

    -- Ken

      ah..got it ,so .? captures "." if it is present but doesnt print ,right? >/p>

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (2)
As of 2024-04-26 02:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found