Using YAPE::Regex::Explain, this is how the first regex is being
interpreted:


The regular expression:

(?-imsx:s/^\s*function\s+(?:\w+\(\)\s*)?\s*\{\s*\n//gi)

matches as follows:

NODE                     EXPLANATION
----------------------------------------------------------------------
(?-imsx:                 group, but do not capture (case-sensitive)
                         (with ^ and $ matching normally) (with . not
                         matching \n) (matching whitespace and #
                         normally):
----------------------------------------------------------------------
  s/                       's/'
----------------------------------------------------------------------
  ^                        the beginning of the string
----------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
----------------------------------------------------------------------
  function                 'function'
----------------------------------------------------------------------
  \s+                      whitespace (\n, \r, \t, \f, and " ") (1 or
                           more times (matching the most amount
                           possible))
----------------------------------------------------------------------
  (?:                      group, but do not capture (optional
                           (matching the most amount possible)):
----------------------------------------------------------------------
    \w+                      word characters (a-z, A-Z, 0-9, _) (1 or
                             more times (matching the most amount
                             possible))
----------------------------------------------------------------------
    \(                       '('
----------------------------------------------------------------------
    \)                       ')'
----------------------------------------------------------------------
    \s*                      whitespace (\n, \r, \t, \f, and " ") (0
                             or more times (matching the most amount
                             possible))
----------------------------------------------------------------------
  )?                       end of grouping
----------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
----------------------------------------------------------------------
  \{                       '{'
----------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
----------------------------------------------------------------------
  \n                       '\n' (newline)
----------------------------------------------------------------------
  //gi                     '//gi'
----------------------------------------------------------------------
)                        end of grouping
----------------------------------------------------------------------



One thing I'm noticing is that this should only match if you don't pass
anything to the function.  I've gotta run, but maybe this is a place to
start.


-----Original Message-----
From: Kevin Old [mailto:[EMAIL PROTECTED] 
Sent: Thursday, March 23, 2006 11:35 AM
To: Timothy Johnson
Cc: Perl Beginners
Subject: Re: Javascript Regex to Perl Regex

Here's what I have.

<snip>

# Clean js
$js =~ s/^\s*function\s+(?:\w+\(\)\s*)?\s*\{\s*\n//gi;
$js =~ s/\s*}\s*$//gi;

<snip>

If you cut and past the HTML and run it in a browser it will turn code
like this:

function wR(_1,_2,_3,_4){
var _5=document.getElementById("w"+_1);
var _4=_4||window.event;
sbHandler.prediction=_3;
RatingManager.handleMouseover(_4,_5);
}

<snip>


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to