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

如何编写可匹配中文、[NAME]、[PLACE]的正则表达式提取目标内容?

错误原因

你之前的写法错误核心是将[NAME]、[PLACE]直接写入正则字符集[]中,字符集的规则是仅匹配单个字符,你写在里面的括号、N/A/M/E/P/L/A/C等字母都会被当成单独的可匹配字符,因此会出现大量单个字母、括号的无效匹配结果。


正确正则及使用示例

正确的正则需要用分支匹配规则,同时转义占位符中的特殊符号[和],写法如下:
r'(?:[一-鿿,]|\[NAME\]|\[PLACE\])+'

完整使用代码:

import re

# 示例输入文本
text = "用户[NAME]上周前往[PLACE]出差,<data>这段标签内容会被过滤</data>,返程时间为本周三。"
# 执行匹配
Array_of_words = re.findall(r'(?:[一-鿿,]|\[NAME\]|\[PLACE\])+', text)
# 过滤空匹配项
Array_of_words = [item for item in Array_of_words if item.strip()]

print(Array_of_words)
# 输出结果:['用户', '[NAME]', '上周前往', '[PLACE]', '出差,', '返程时间为本周三']

补充说明

如果需要保留更多中文标点(比如句号、问号、感叹号等),直接把对应标点加到中文匹配的字符集里即可,例如把[一-鿿,]改为[一-鿿,。?!;:“”‘’]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:54:05