Difference between revisions of "Talk:1171: Perl Problems"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
m (why does -- and start-of-line force a newline?)
Line 20: Line 20:
 
But if you only wanted the first match, it would be more common to write something like <code>$firstMatch = $str =~ m/([A-Za-z])/ && $1;</code>
 
But if you only wanted the first match, it would be more common to write something like <code>$firstMatch = $str =~ m/([A-Za-z])/ && $1;</code>
 
I think that if you do want all the matches in perl, you are better off doing it in an explicit loop, so as to avoid creating an unneeded array.
 
I think that if you do want all the matches in perl, you are better off doing it in an explicit loop, so as to avoid creating an unneeded array.
(Perl now considers using the "complete match" token to be a less than ideal thing to use, which is why I added the parens and used <code>$1</code> instead of <code>$&</code>.)
+
(Perl now considers using the "complete match" token to be a less than ideal thing to use, which is why I added the parens and used <code>$1</code> instead of <code>$&</code>.) --[[User:Divad27182|Divad27182]] ([[User talk:Divad27182|talk]]) 06:33, 9 February 2013 (UTC)
--[[User:Divad27182|Divad27182]] ([[User talk:Divad27182|talk]]) 06:33, 9 February 2013 (UTC)
 

Revision as of 06:40, 9 February 2013

The punchline is in reference to this oft-quoted joke by jwz:

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. - Jamie Zawinski

There's actually a double joke here: The song "99 Problems" is by Jay-Z, and the regex joke is by jwz. --173.8.183.86 08:33, 8 February 2013 (UTC)

[Jj][A-Za-z]*[\b\-]*[Zz][A-Za-z]* Elsbree (talk) 17:31, 8 February 2013 (UTC)

I don't understand why so many people have problems with regular expressions. They are really easy ... compared to gramatics or turing machines. :-) (Of course, it is good idea to verify that the problem you are trying to solve with regular expressions IS regular. While perl is sometimes capable of doing stuff outside real regular expressions, it's rarely worth it.) -- Hkmaly (talk) 10:23, 8 February 2013 (UTC)

Wait, how do we know that the Regular Expressions helped Cueball, and that now, in fact, he has only 4 problems? 220.224.246.97 15:52, 8 February 2013 (UTC)

Great explanation today, folks. --DanB (talk) 20:10, 8 February 2013 (UTC)

The stuff about preg_match is NOT perl at all. It is php. perl has regular expression matching as part of the language, not as a function. In perl, you would normally only get the firrst match, unless you used the 'g' flag. The comparable initial match might be: @matches = $str =~ m/([A-Za-z])/g; But if you only wanted the first match, it would be more common to write something like $firstMatch = $str =~ m/([A-Za-z])/ && $1; I think that if you do want all the matches in perl, you are better off doing it in an explicit loop, so as to avoid creating an unneeded array. (Perl now considers using the "complete match" token to be a less than ideal thing to use, which is why I added the parens and used $1 instead of $&.) --Divad27182 (talk) 06:33, 9 February 2013 (UTC)