Python正则表达式:移除指定字符及其左侧所有字符的方法
匹配删除首个
[及左侧所有内容的正则方案 直接使用以下正则匹配目标内容,将匹配结果替换为空字符串,即可保留后续的主机ID列表:^.*?\[
注意:使用时需要开启单行匹配模式(也叫DOTALL模式、s修饰符模式),否则
.无法匹配换行符,会导致跨多行的文本匹配失败。
规则说明
^:锚定文本的最起始位置,确保从文本开头开始匹配.*?:非贪婪模式匹配任意长度的任意字符,匹配到第一个符合后续规则的内容就停止,不会跳过首个[匹配到更靠后的其他方括号\[:转义匹配左方括号[本身,方括号是正则中的特殊元字符,必须加反斜杠转义才能匹配字面量- 单行模式的作用是让
.可以匹配换行符,适配示例中[和文本开头不在同一行的场景。
效果验证
原始待处理文本
warnings.warn( resources: [ b484e9aa2xxxe95a3225, 9a854531xxx2a4f84394c, e127d90xxxe0825d7c949, 3252014xxxd8568b4Gsd3,
替换后输出
b484e9aa2xxxe95a3225, 9a854531xxx2a4f84394c, e127d90xxxe0825d7c949, 3252014xxxd8568b4Gsd3,
常见场景写法参考
- Python 实现
import re raw_content = """ warnings.warn( resources: [ b484e9aa2xxxe95a3225, 9a854531xxx2a4f84394c, e127d90xxxe0825d7c949, 3252014xxxd8568b4Gsd3, """ host_list_content = re.sub(r"^.*?\[", "", raw_content, flags=re.DOTALL)
- JavaScript 实现
const rawContent = ` warnings.warn( resources: [ b484e9aa2xxxe95a3225, 9a854531xxx2a4f84394c, e127d90xxxe0825d7c949, 3252014xxxd8568b4Gsd3, ` const hostListContent = rawContent.replace(/^.*?\[/s, '')
- 通用文本编辑器(如VS Code、Notepad++)查找替换:查找栏输入
^.*?\[,替换栏留空,查找选项勾选「单行」/「.匹配换行」,执行替换即可。
内容的提问来源于stack exchange,提问作者AR_97
相关产品推荐
相关产品推荐

