
Jasmine
Administrator
Mar 15, 2001, 6:02 AM
Post #1 of 1
(30894 views)
|
How do I use a regular expression to strip C style
|
Can't Post
|
|
How do I use a regular expression to strip C style comments from a file? While this actually can be done, it's much harder than you'd think. For example, this one-liner
perl -0777 -pe 's{/\*.*?\*/}{}gs' foo.c will work in many but not all cases. You see, it's too simple-minded for certain kinds of C programs, in particular, those with what appear to be comments in quoted strings. For that, you'd need something like this, created by Jeffrey Friedl:
$/ = undef; $_ = <>; s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|\n+|.[^/"'\\]*)#$2#g; print; This could, of course, be more legibly written with the /x modifier, adding whitespace and comments.
|