How can I remove text within parentheses with a regex?
s/\([^)]*\)//
So in Python, you'd do:
re.sub(r'\([^)]*\)', '', filename)
The pattern that matches substrings in parentheses having no other (
and )
characters in between (like (xyz 123)
in Text (abc(xyz 123)
) is
\([^()]*\)
Details:
\(
- an opening round bracket (note that in POSIX BRE,(
should be used, seesed
example below)[^()]*
- zero or more (due to the*
Kleene star quantifier) characters other than those defined in the negated character class/POSIX bracket expression, that is, any chars other than(
and)
\)
- a closing round bracket (no escaping in POSIX BRE allowed)
Removing code snippets:
- JavaScript:
string.replace(/\([^()]*\)/g, '')
- PHP:
preg_replace('~\([^()]*\)~', '', $string)
- Perl:
$s =~ s/\([^()]*\)//g
- Python:
re.sub(r'\([^()]*\)', '', s)
- C#:
Regex.Replace(str, @"\([^()]*\)", string.Empty)
- VB.NET:
Regex.Replace(str, "\([^()]*\)", "")
- Java:
s.replaceAll("\\([^()]*\\)", "")
- Ruby:
s.gsub(/\([^()]*\)/, '')
- R:
gsub("\\([^()]*\\)", "", x)
- Lua:
string.gsub(s, "%([^()]*%)", "")
- Bash/sed:
sed 's/([^()]*)//g'
- Tcl:
regsub -all {\([^()]*\)} $s "" result
- C++
std::regex
:std::regex_replace(s, std::regex(R"(\([^()]*\))"), "")
- Objective-C:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\([^()]*\\)" options:NSRegularExpressionCaseInsensitive error:&error]; NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
- Swift:
s.replacingOccurrences(of: "\\([^()]*\\)", with: "", options: [.regularExpression])
- Google BigQuery:
REGEXP_REPLACE(col, "\\([^()]*\\)" , "")