【问题标题】:How do I search for a pattern with different numbers of white spaces using regex?如何使用正则表达式搜索具有不同数量空格的模式?
【发布时间】:2015-08-07 04:43:11
【问题描述】:

我正在尝试处理文本文件并使用正则表达式识别某些模式。我希望我的程序能够识别以下模式:

Pattern\n
Pattern \n
Pattern  \n

等等。我希望能够识别“模式”和回车之间带有任意数量的空格或制表符(有区别吗?)的模式。

我看过 How to ignore whitespace in a regular expression subject string? 但我不明白他们为什么在表达式的前后都有一个斜线。

如何使用正则表达式来做到这一点?

【问题讨论】:

    标签: python regex


    【解决方案1】:

    在您链接的示例中,开头和结尾处的斜杠是模式的一部分,因此它们与答案的正则表达式部分无关。

    如果我理解您的问题,pattern 将始终是连续的。在这种情况下,不管后面有多少空格,你总能找到它。如果您想确保在捕获该空格时找到pattern,请使用类似

    import re
    lines = 'hello\nhello     \n'
    pattern = 'hello'
    results = re.findall(pattern + r'\s*\n', lines)
    print(results)
    >>> ['hello\n', 'hello     \n']
    

    如果您不关心空格,只需搜索pattern

    【讨论】:

      【解决方案2】:

      是的,有区别。大多数正则表达式引擎都有您可以指定的标志来搜索空格或换行符。例如在 python 中匹配空格你会做 re.match(r'\s', yourVar) '\s' 匹配空格。您所指的两个斜杠“//”在许多语言中用于表示正则表达式。例如/\s/ 你的表达会介于两者之间。

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多