Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Re: regex 2 find C function dependencies

by Cody Pendant (Prior)
on Sep 19, 2003 at 23:31 UTC ( [id://292783]=note: print w/replies, xml ) Need Help??


in reply to Re: regex 2 find C function dependencies
in thread regex 2 find C function dependencies

OK I stand corrected, but not 100% -- the perl 5.6 FAQ says
Can I use Perl regular expressions to match balanced text? 

Although Perl regular expressions are more powerful than "mathematical" regular expressions, because they feature conveniences like backreferences (\1 and its ilk), they still aren't powerful enough -- with the possible exception of bizarre and experimental features in the development-track releases of Perl. You still need to use non-regex techniques to parse balanced text, such as the text enclosed between matching parentheses or braces, for example.

An elaborate subroutine (for 7-bit ASCII only) to pull out balanced and possibly nested single chars, like ` and ', { and }, or ( and ) can be found in http://www.perl.com/CPAN/authors/id/TOMC/scripts/pull_quotes.gz .

The C::Scan module from CPAN contains such subs for internal usage, but they are undocumented.

Whereas the 5.8 says

Historically, Perl regular expressions were not capable of matching balanced text. As of more recent versions of perl including 5.6.1 experimental features have been added that make it possible to do this. Look at the documentation for the (??{ }) construct in recent perlre manual pages to see an example of matching balanced parentheses. Be sure to take special notice of the warnings present in the manual before making use of this feature.

CPAN contains many modules that can be useful for matching text depending on the context. Damian Conway provides some useful patterns in Regexp::Common. The module Text::Balanced provides a general solution to this problem.

One of the common applications of balanced text matching is working with XML and HTML. There are many modules available that support these needs. Two examples are HTML::Parser and XML::Parser. There are many others.

An elaborate subroutine (for 7-bit ASCII only) to pull out balanced and possibly nested single chars, like ` and ', { and }, or ( and ) can be found in http://www.cpan.org/authors/id/TOMC/scripts/pull_quotes.gz.

The C::Scan module from CPAN also contains such subs for internal use, but they are undocumented.

So it's not like it says "sure, here's the trick (one line of code)" is it?

I still think someone was trying to make a point by handing our friend this assignment.



($_='kkvvttuubbooppuuiiffssqqffssmmiibbddllffss') =~y~b-v~a-z~s; print

Replies are listed 'Best First'.
Re: regex 2 find C function dependencies
by Abigail-II (Bishop) on Sep 20, 2003 at 00:02 UTC
    So it's not like it says "sure, here's the trick (one line of code)" is it?

    Uhm, since when is the FAQ definite for when something is possible? There are lots of things that are possible with Perl, for which the FAQ doesn't provide code, let alone a one-liner. There's no need for the FAQ to repeat code that's in the manual pages. And if there isn't code mentioned in the FAQ, that doesn't mean something isn't easy.

    One should also realize that large portions of the FAQ are several years old; that the FAQ was originally written by two people (who weren't always right, and sometimes had problems separating facts from opinions). When the original FAQ answer was written, it was indeed impossible. After it became possible, the FAQ was no longer maintained by the original owners. Nowadays, the FAQ is maintained by a handful of people who have committing rights to the repository, but the main maintainer is serving a tour of duty in Iraq.

    Abigail

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-03-29 12:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found