Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Regex to strip comments

by BrowserUk (Patriarch)
on Oct 01, 2012 at 00:39 UTC ( [id://996561]=note: print w/replies, xml ) Need Help??


in reply to Regex to strip comments

You could try this:

$t = 'fred /* bill "jack \" */ \xAB \t john\n" mick */ mary /* /* \u12 +ef */ jane';; ( $s = $t ) =~ s[(/\*(?:"(?:\\\\|\\[abfnrt]|\\u[0-9a-fA-F]{4}|\\x[0-9a +-fA-F]{2,4}|\\"|[^"])+?"|.)*?\*/)][]msg; print $s;; fred mary jane

There are probably some edge cases I've missed, but they should be fixable.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

RIP Neil Armstrong

Replies are listed 'Best First'.
Re^2: Regex to strip comments (out not in)
by tye (Sage) on Oct 01, 2012 at 04:35 UTC

    String literals aren't parsed inside of comments, as your code seems to assume. It is only the string literals outside of comments where '/*' needs to be ignored. (And, despite the OP's claim, '*/' in a string literal isn't a problem.)

    - tye        

      (And, despite the OP's claim, '*/' in a string literal isn't a problem.)

      The OP didn't identify the language involved, so I took him at his word.

      Seems I don't have the 'I-know-better-than-the-OP' gene that you and several others around here have. I don't miss it.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

      RIP Neil Armstrong

        (And, despite the OP's claim, '*/' in a string literal isn't a problem.)
        The OP didn't identify the language involved, so I took him at his word.

        No offense intended, but that's hilarious. If you took them at their word with regard to '*/', then you must not have with regard to '/*'.

        Seems I don't have the 'I-know-better-than-the-OP' gene that you and several others around here have. I don't miss it.

        Where did I say a specific language that I was assuming? I guess you have the "You know better than some" gene, since you aren't taking me at my word.

        That insult is so comical in the face of you presuming that this unspecified language accepts the following for string literals: "(?:\\\\|\\[abfnrt]|\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2,4}|\\"|[^"])+?". That is an impressively specific set of features for an unspecified language.

        I tried to be quite polite. But I am not surprised that you found it so very hard to admit to even a simple mistake that you responded with an attack. Just saddened.

        The OP didn't say that they are using a language that parses string literals inside of block comments. They certainly didn't say that their language parses string literals only inside of block comments.

        The idea of there even existing a language where string literals are parsed only inside of block comments is quite humorous. But that is all that your regex tries to handle.

        But composing the regex 'backward' in that way is quite a simple mistake. The kind of mistake I make all the time. Most people do.

        I am sorry my correction caused you distress (or seemed to). That wasn't my intent. I would appreciate it if you would at least refrain from responding with another insult. (I thought pointing out the mistake was actually more polite than down-voting and not commenting, something you've complained about repeatedly.)

        - tye        

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (3)
As of 2024-04-26 05:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found