账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python re模块匹配多次取值?
    49
    0

    Name Server: ns3.baidu.com
    Name Server: ns2.baidu.com
    Name Server: dns.baidu.com
    Name Server: ns7.baidu.com
    Name Server: ns4.baidu.com

    在使用re模块的时候
    re.search('Name Server:(.*)', info).group() 只能匹配一次,怎么可以有多少取多少?

    可以用re模块实现下面的返回结果吗?
    {'Name Server':[ns3.baidu.com,ns2.baidu.com,dns.baidu.com,ns7.baidu.com,ns4.baidu.com]}

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在Python的re模块中,如果你想从一个字符串中多次匹配并获取多个值,可以使用`re.findall()`函数。这个函数会返回所有非重叠匹配的结果,结果是一个包含所有匹配项的列表。 例如: ```python import re text = "I have a cat. His name is Tom. I also have a dog. Her name is Jerry." # 匹配所有的动物名称 animal_names = re.findall(r'\b\w+\b', text) # 匹配特定模式的动物名称(例如:猫和狗的名字) cat_dog_names = re.findall(r'cat|dog', text) specific_animal_names = re.findall(r'His name is (\w+).|Her name is (\w+).', text) print(animal_names) print(cat_dog_names) print(specific_animal_names) ``` 在这个例子中: - `animal_names`将包含所有单词,因为`\b\w+\b`匹配任何单词。 - `cat_dog_names`将包含所有"cat"或"dog"出现的位置。 - `specific_animal_names`将只包含"I have a cat."和"I also have a dog."之后的名字,但请注意,由于正则表达式的编写方式,结果将是元组的列表,每个元组包含一个匹配项(在这种情况下,是名字)。 如果你想要的是具体的名字而不是元组,对于`specific_animal_names`,你可以进一步处理这个列表,例如: ```python specific_animal_names = [name for _, name in specific_animal_names] print(specific_animal_names) ``` 这将只提取括号内的捕获组内容,即猫和狗的名字。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部