【问题标题】:Python: POSIX character class in regex?Python:正则表达式中的 POSIX 字符类?
【发布时间】:2015-11-02 02:51:12
【问题描述】:

如何在 Python 中搜索给定字符串中的 10 个 isprint 字符序列?

使用 GNU grep,我只需执行 grep [[:print:]]{10}

【问题讨论】:

    标签: python regex character-class


    【解决方案1】:

    由于 Python re 模块不支持 POSIX,您必须借助字符类来模拟它。

    您可以使用regular-expressions.info 中的一个并添加限制量词{10}

    [\x20-\x7E]{10}
    

    demo

    或者,您可以使用声称支持 POSIX 字符类的Matthew Barnett regex module支持 POSIX 字符类。)。

    【讨论】:

    • 当在 re.sub() 方法中使用时,这个字符类在 Python 3 [`~!@#$%^&*()_=+\[\]{}\\\|;:\"\'<>.,/?] 中为我工作
    • @Iota,[`~!@#$%^&*()_=+\[\]{}\\\|;:\"\'<>.,/?] 只匹配 ASCII 标点符号,它与“可打印字符”的概念无关。因此,如果您要使用 POSIX 字符类,它将是 [[:punct:]]。要在 Python 中匹配标点符号,您可以使用 [^\w\s],尽管有更好、更精确的模式。
    • 我的错!我将[[:print]] 类误读为[[:punct]]。感谢您的纠正。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2018-02-05
    • 2023-04-05
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    相关资源
    最近更新 更多