Python 用于删除括号中数据的正则表达式
我试图删除下面这些字符串的括号区域,但无法使正则表达式正常工作:( 数据: 正则表达式: Regex101: 示例代码Python 用于删除括号中数据的正则表达式,python,regex,python-2.7,Python,Regex,Python 2.7,我试图删除下面这些字符串的括号区域,但无法使正则表达式正常工作:( 数据: 正则表达式: Regex101: 示例代码 删除方括号;您没有匹配字符类: item = re.sub(r" \(\w+\)", "", item) 演示: 最后一个示例的左括号(()前面没有空格,因此不匹配。如果需要该模式也可以使用,可以将空格设置为可选: item = re.sub(r" ?\(\w+\)", "", item) 也许匹配任何非右括号的内容也适用于您: item = re.sub(r" ?\([
删除方括号;您没有匹配字符类:
item = re.sub(r" \(\w+\)", "", item)
演示:
最后一个示例的左括号((
)前面没有空格,因此不匹配。如果需要该模式也可以使用,可以将空格设置为可选:
item = re.sub(r" ?\(\w+\)", "", item)
也许匹配任何非右括号的内容也适用于您:
item = re.sub(r" ?\([^)]+\)", "", item)
这比仅\w
匹配的字符范围更广
在正则表达式中,方括号,
[…]
表示字符类;一组要匹配一次的字符。类[\(w+\)]
的意思是:匹配一个字符,如果它匹配一组字符,包括空格、左括号、\w
类的所有字符、+
加号或右括号。方括号内的任何字符都会被提取,而与字符的顺序无关,因为[…]
是一个字符类。请完全删除它们:
r" \(\w+\)"
我会为可选空间添加一个?
:
r" ?\(\w+\)"
item = re.sub(r" ?\(\w+\)", "", item)
item = re.sub(r" ?\([^)]+\)", "", item)
r" \(\w+\)"
r" ?\(\w+\)"