【问题标题】:Finding multiple spaces between two strings dynamically动态查找两个字符串之间的多个空格
【发布时间】:2012-05-31 05:20:03
【问题描述】:

我正在用 Python 编写代码,并从不同的变量中提取两个或多个单词并尝试在给定文本中找到匹配项。

例如,两个变量可能声明如下:

string1 = 'Polluted' 
string2 = 'air'

要匹配的文本可能是:

'Polluted\t\t\t air ''Polluted\tair'

单词/标记之间也可能有多个空格。

我需要找到类似的解决方案:re.search(string1'\t+'string2,var)

您能否提供解决方案以按预期实施?

【问题讨论】:

    标签: python implementation string-matching


    【解决方案1】:

    使用\s,它相当于集合[ \t\n\r\f\v],如果使用re.UNICODE,则加上Unicode 字符属性数据库中归类为空格的任何内容。

    >>> var = 'Polluted\t\t\t air, Polluted\tair'
    >>> re.findall(re.escape(string1) + '\s+' + re.escape(string2), var)
    ['Polluted\t\t\t air', 'Polluted\tair']
    
    >>> re.search('(\w+)\s+(\w+)', 'Polluted\t\t\t air').groups()
    ('Polluted', 'air')
    

    【讨论】:

    • 我认为提问者实际上想要re.search(re.escape(string1) + '\s+' + re.escape(string1), ...)
    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    相关资源
    最近更新 更多