博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
匹配微博转发关系(Python)
阅读量:4188 次
发布时间:2019-05-26

本文共 832 字,大约阅读时间需要 2 分钟。

目录


 

题目描述

写一个匹配微博转发关系中的网名的正则表达式。将下列的微博转发关系:

"哈哈哈哈//@路人甲: 233333//@路人乙: ohhhhhhh/@권지용: Fanatic

输出为一个列表:

['路人甲', '路人乙', '권지용']

 

输入/输出描述

输入:无输入

输出:输出转发关系列表 ['路人甲', '路人乙', '권지용']

 

解决方案:

题目要求使用正则表达式匹配。在正则表达式中,\w匹配一个字符,* 表示若干个(可以是0个)数量,且所有转发微博的名称都位于@符号之后。因此正则表达式可以写为:@\w{*}。再通过循环将每个匹配到的元素首字符@去掉即可得到正确答案。

 

代码

import reif __name__ == '__main__':    demo = "哈哈哈哈//@路人甲: 233333//@路人乙: ohhhhhhh/@권지용: Fanatic"    pattern = r"@\w*"    result = [element[1:] for element in re.findall(pattern, demo)]    print(result)

 

运行结果

['路人甲', '路人乙', '권지용']

 

代码走读

# 需要导入Python正则匹配包reimport reif __name__ == '__main__':    demo = "哈哈哈哈//@路人甲: 233333//@路人乙: ohhhhhhh/@권지용: Fanatic"    # 定义正则表达式    pattern = r"@\w*"    # 使用findall()函数匹配结果,并将findall()得到的列表中的每个元素去掉首字符‘@’    result = [element[1:] for element in re.findall(pattern, demo)]    # 输出结果    print(result)

 

传送门

转载地址:http://absoi.baihongyu.com/

你可能感兴趣的文章
MySQL数据库入门(四)
查看>>
关于方法覆盖和属性覆盖的问题?
查看>>
JAVA中ListIterator和Iterator详解
查看>>
目标和
查看>>
跳跃游戏
查看>>
买卖股票的最佳时机 II
查看>>
分发饼干
查看>>
最低票价
查看>>
删列造序
查看>>
使括号有效的最少添加
查看>>
令牌放置
查看>>
回溯法思想
查看>>
子集和问题
查看>>
旅行售货员问题
查看>>
区域和检索 - 数组不可变
查看>>
整数分解
查看>>
最长有效括号
查看>>
救生艇
查看>>
Android中自定义圆形图片(一)
查看>>
Android中ViewPager自动加手动轮播
查看>>