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

如何正确创建Python正则以允许字母数字、逗号、点、空格?解决语法错误

解决Python中保留指定字符的语法错误问题

你这段代码报错的核心原因是误用了JavaScript的正则语法,Python里的字符串处理逻辑和JS不一样:

  1. Python的str.replace()方法只能替换固定字符串,不支持正则表达式匹配
  2. Python的正则表达式不是用/.../g这种格式定义的,也不需要g来声明全局替换(re.sub()默认就是全局替换)

正确实现方式(正则版)

需要导入re模块,用re.sub()来完成正则替换:

import re

strx = 'test, 22222 @% te-st test test'
# 匹配所有非允许的字符并替换为空
result = re.sub(r'[^A-Za-z0-9, .]', '', strx)
print(result)

输出结果:test, 22222 test test test

备选实现方式(非正则版)

如果不想依赖正则模块,也可以用字符串推导式手动过滤字符:

strx = 'test, 22222 @% te-st test test'
allowed_chars = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789, .')
result = ''.join([char for char in strx if char in allowed_chars])
print(result)

输出结果和正则版一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:02:10