You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则替换:如何删除#之间的所有字符?现有规则失效求助

解决#符号间内容的删除问题

问题分析

你之前用的正则仅匹配字母组成的内容,还限定了#前后的空格,但实际待处理内容里包含下划线、数字,且#和内容之间无空格,部分#还紧跟括号、文本等字符,导致原有规则覆盖不全,无法完成替换。

解决方案

使用非贪婪模式的正则,匹配任意两个#之间的所有内容,再将其替换为空即可。具体代码如下:

import re

text = 'Please direct all communications to the HR Department within Refined Resources (#URL_80d75e0d07ca8b108539318a0443bfe5d1ff472afa0c4540b77079c5d5f31eee#)\xa0#EMAIL_0b13a2cfd4718ce252c09b2353d692a73bd32552e922c5db6cad5fb7e9a2c6c3#Darren Lawson | VP of Recruiting |\xa0#EMAIL_395225df8eed70288fc67310349d63d49d5f2ca6bc14dbb5dcbf9296069ad88c#\xa0| #PHONE_70128aad0c118273b0c2198a08d528591b932924e165b6a8d1272a6f9e2763d1#'

# 先将\xa0替换为空格
text = text.replace('\xa0', ' ')
# 匹配所有#开头到#结尾的内容,采用非贪婪模式避免过度匹配
text = re.sub(r'#.*?#', '', text)

print(text)

代码解释

  • 核心正则#.*?#的作用:
    • # 精准匹配开头的#符号
    • .*? 是非贪婪匹配规则,会匹配任意字符(换行符除外),直到遇到第一个#就停止,避免把多个独立的#块当成一个整体匹配
    • 末尾的# 匹配结束的#符号
  • 替换后即可清空所有#之间的内容,得到预期结果。

运行后输出:

Please direct all communications to the HR Department within Refined Resources () Darren Lawson | VP of Recruiting | |

内容的提问来源于stack exchange,提问作者Azareel Fausan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:01:11