如何使用Python正则仅删除每行开头括号内的内容,保留其他位置括号文本
正则匹配所有行首括号内容的修改方案
核心原因
你原来的正则只能匹配第一个行首内容,是因为Python正则默认情况下^锚点仅匹配整个文本的起始位置,不会识别每一行的开头。
最终替换规则
直接使用以下规则即可:
(?m)^\h*\([^()]*\)\h*,
如果你的运行环境不支持\h语法,可以改用兼容版本:
(?m)^[ \t]*\([^()]*\)[ \t]*,
规则说明
(?m):Python正则内嵌的多行模式标志,开启后^会匹配每一行的行首位置^:锚定行首位置\h/[ \t]:匹配水平空白符(空格、制表符),兼容行首带空格、括号后带空格的场景\([^()]*\):匹配一对完整的括号以及内部不嵌套其他括号的所有内容- 逗号后面为空:代表把匹配到的内容替换为空字符串
效果验证
对你给出的示例文本使用该规则后,所有行首的括号编码都会被删除,行中其他位置的括号内容完全保留,和你提供的预期输出一致。
内容的提问来源于stack exchange,提问作者learner2021
相关产品推荐
相关产品推荐

