if you need to remove only matching (), your code won't do. Since '.' will match any character including ')' and since it is a greedy match, it will only eliminate the outmost parenthesis and (!)everything in between. Also the space before the parenthesis would have to match. You could use
but you would have to repeat that regex until no match was found anymore. Except if you only have only one level of parenthesis, then one execution of the regex would be enoughs/\([^)]*\)//g #eliminate anything in parenthesis or s/\(([^)]*)\)/$1/g #remove matching parens but not the content
removing characters can be done with one regex using a character class:
s/[%*()]//g;
even parenthesis if you don't mind that they don't match
you could simply use + instead of {1,}
UPDATE to correct a very silly mistake indeed: changed ? to +
In reply to Re: Regex operation optimisation
by jethro
in thread Regex operation optimisation
by perlpal
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |