【问题标题】:python regex not detecting square bracketspython 正则表达式未检测到方括号
【发布时间】:2015-07-04 21:37:43
【问题描述】:

我有一个场景,我想从给定内容中删除除空格之外的所有特殊字符,我正在使用 Python,并且我正在使用这个正则表达式

re.sub(r"[^a-zA-z0-9 ]+","",content)

它删除了所有特殊字符,但没有删除方括号[ ],我只是不知道为什么会这样??

之后我只使用这个正则表达式

content = re.sub(r"[^a-zA-z0-9 ]+|\[|\]","",content)

它在IDLE IDE 中完美运行并删除了所有类型的特殊字符,但是当我想替换像维基百科页面这样的大文件时,它现在没有删除右方括号] 我只是不知道为什么Python 会这样做奇怪的行为和

【问题讨论】:

  • 即使使用小写的z,您的代码也应该删除右方括号。我试过了,它为我删除了它们。你能在没有删除右方括号的地方显示输出吗?
  • @JoeR [A-z] == [A-Z\[\\\]\^_`a-z]

标签: python regex


【解决方案1】:

你有一个小写的z,它应该是大写的。变化:

re.sub(r"[^a-zA-z0-9 ]+","",content)

到:

re.sub(r"[^a-zA-Z0-9 ]+","",content)

作为记录,'A-z' 的范围扩展到字符 A...Z[\]^_``a...z;这就是为什么您的正则表达式会删除除那些字符之外的所有内容。

ASCII 表:

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多