python - 正则表达式中的意外结果

标签 python regex

pattern = r'[ -\\[\\]]'
regex = re.compile(pattern)
name = '123[ shiv'
new_name = regex.sub('_',name)

给出结果(new_name)::

'_____shiv'

代替::

'123__shiv'

..提前致谢

最佳答案

您的正则表达式正在创建从 whitespace (ASCII Code - 32)opening bracket - [(ASCII Code - 91) 因为 - 介于两者之间。该范围包括数字 0 到 9 (ASCII 代码 - 48 到 57)

您需要将正则表达式更改为:-

pattern = '[- \\[\\]]'

- 移到开头。

关于python - 正则表达式中的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570045/

相关文章:

python - 使用正则表达式将韩文文本解析为列表

Java - 正则表达式问题

python - 如何从 Jenkins 的特定构建中获取分支名称?

Python urllib3 以及如何处理 cookie 支持?

python - 在 python 中预加载一些库和脚本

javascript regex - 查找由定界符括起来的子字符串

java.util.regex.PatternSyntaxException : Dangling meta character '?'

python - 如何在 Eclipse 中将 PIL 添加到 PyDev,以便我可以导入它并在我的项目中使用它?

python - Pandas 在群体内的先前值(value)

java - 正则表达式检查 Android 中的多个条件