【问题标题】:python find specific pattern of text from stringpython从字符串中找到特定的文本模式
【发布时间】:2023-02-04 00:37:12
【问题描述】:

我想从字符串中提取特定类型的文本。

Luxyry 2 bedroom apartment
Deluxe apartment 2 bedroom
Super luxyry 3 bedroom apartment
1 Bedroom studio apartment

这是我的文本,我想从文本中提取 1 Bedroom2 bedroom3 bedroom。 模式将与 {no_of_bedroom} 卧室相同。

如何在 python 中提取它?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您可以像下面这样使用regex

    import re
    text = """
    Luxyry 2 bedroom apartment
    Deluxe apartment 2 bedroom
    Super luxyry 3 bedroom apartment
    1 Bedroom studio apartment
    """
    
    res = re.findall(r'd+ [Bb]edroom', text)
    print(res)
    
    # Use 'set()' if you want unique values
    # print(set(res))
    # {'3 bedroom', '1 Bedroom', '2 bedroom'}
    

    输出:

    ['2 bedroom', '2 bedroom', '3 bedroom', '1 Bedroom']
    

    解释:

    • d+:
      • d :匹配一个数字(相当于[0-9]
      • + :匹配前一个令牌一次到无限次
    • [Bb] :匹配下面列表中的单个字符 [Bb]

    【讨论】:

    • 请注意,您使用的是标准库的一部分 re,而 regex 是外部库
    【解决方案2】:

    你可以使用 re 模块

    #pip install re
    
    Import re
    text = 'Luxyry 2 bedroom apartment
            Deluxe apartment 2 bedroom
            Super luxyry 3 bedroom 
               apartment 1 Bedroom studio apartment'
    Result = re.findall(r"d+s[Bb]bedroom", text)
    Print(f"Result :{Result}")
    

    d+ 将匹配 1 个或多个数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2020-04-26
      • 2022-01-17
      • 2020-11-22
      • 2013-02-23
      相关资源
      最近更新 更多