鱼C论坛

 找回密码
 立即注册
查看: 1972|回复: 14

[已解决]正则表达式匹配的一些问题

[复制链接]
发表于 2022-8-10 19:58:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Py与C。。。 于 2022-8-10 20:26 编辑

爬取网易云音乐,得到以下字典:
歌词字典.txt (535.13 KB, 下载次数: 10)
然后就想用re.findall(r'作词 : (.*?)\n 作',str(lyric_list),re.S)匹配到作词人,结果什么都匹配不到,返回空列表
请问有没有什么更好的表达式呢?求帮助
最佳答案
2022-8-10 21:12:40
Py与C。。。 发表于 2022-8-10 21:06
我试了一下,发现还是不太理想:
我又加了一个replace用于把“作词:”替换掉,但是结果是:

  1. import re
  2. f = open("歌词字典.txt","r",encoding="utf-8")

  3. result = f.read()
  4. resultList = re.findall(r"作词 : [\u4E00-\u9FA5A/]+",result)
  5. print(resultList)

  6. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-10 20:06:06 | 显示全部楼层
本帖最后由 Py与C。。。 于 2022-8-10 20:13 编辑

没人吗 别沉啊啊啊 在线等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 20:18:22 | 显示全部楼层
本帖最后由 Py与C。。。 于 2022-8-10 20:25 编辑

别沉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-10 20:28:48 | 显示全部楼层
  1. f = open("歌词字典.txt","r",encoding="utf-8")

  2. result = eval(f.read())["最伟大的作品"]
  3. resultList = result.split('\n')
  4. for i in resultList:
  5.     if "作词" in i:
  6.         print(i)
  7.         break

  8. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 20:29:18 | 显示全部楼层

这样子可以吗?虽然效率可能不太高
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 20:55:23 | 显示全部楼层

这样也挺好,但是能不能用正则表达式?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 21:06:48 | 显示全部楼层



我试了一下,发现还是不太理想:
我又加了一个replace用于把“作词:”替换掉,但是结果是:
  1. 黄俊郎/谢迪', '出自孤单   方文山', '而鱼雁不再往返 周杰伦/宋健彰', '好胆你就麦造 黄俊郎', 'TWK972001101  周杰伦', 'TWK971801101  方文山', ' 仰望天空之城 想起越走越远的我们 方文山', '双手弹奏出黎明 原来爱如此的动听 周杰伦', '迎
  2. 接 胜利 最后让我收头 方文山', '“掰掰!” 徐若瑄', '谢谢 方文山', '再回童年 敲敲门 黄俊郎/方文山', '为了它神魂颠倒 黄
  3. 俊郎', '我 慢慢睡着 天 刚刚破晓 罗宇轩/黄婕熙', '缺氧的感觉 周杰伦', '我已经开始想念 派伟俊', '这就是我的时代 周杰
  4. 伦', '但故事的最后你好像还是说了拜拜 周杰伦', '作词:周杰伦', '“谢谢!” 方文山', '想说谢谢你 谢谢 方文山', '我在宇
  5. 宙无重力的环境\xa0\xa0为你降临 宋健彰', '读完了依赖 我很快就离开 周杰伦', '不要再这样打我妈妈 方文山', '将压力一股
  6. 脑全部释放掉 周杰伦', '所以你弃权 方文山', '一只令它心仪的母斑鸠 周杰伦/许世昌/徐若瑄', '后知后觉 后知后觉 周杰伦', '土耳其冰淇淋 方文山', '我的幻术让你沉迷看穿你 方文山', '在说我愿意 方文山', '现在还在刮 方文山', '你出现在我诗的
  7. 每一页 方文山', '一路守护着约定 Oh 方文山', '还在找理由 等我 方文山', ' SP : Universal Music Publishing Ltd. Taiwan 方文山', '一路守护着约定  Oh~ 方文山', ' SP : Universal Music Publishing Ltd. Taiwan 黄俊郎', '像前世我们有过的模
  8. 样 周杰伦', '迎接 胜利 最后让我收头 方文山', ' SP : Universal Music Publishing Ltd. Taiwan 周杰伦', '土耳其冰淇淋  
  9. 方文山', '在说我愿意 方文山', '我的幻术让你沉迷看穿你 周杰伦', ' SP : Universal Music Publishing Ltd. Taiwan 方文山
  10. ', '靠 方文山', '等待英雄 我就是那条龙 方文山', '谢谢你 黄俊郎', '天台上永远都招待寂寞 方文山', '交朋友  就不要太啰
  11. 嗦  一句话开心自由 宋健彰/黄俊郎', '我的快门里  你是永恒 黄俊郎', '不是腿壮壮肌肉大大才是老大 周杰伦', '我们都在等
  12. 雨停 方文山', '一路向北 方文山', '要我怎么捡 方文山', '不用抉择  我会自动变朋友 周杰伦', '下大雨我没你会难过 徐若瑄
  13. ', '后知后觉后知后觉 方文山', '他下台一鞠躬 黄俊郎/周杰伦/方文山', '请你别太得意 黄俊郎/周杰伦', '在我忘记之前 周杰
  14. 伦', '我只好再亲吻你一遍 周杰伦', '沙滩上有你的脚印  是一辈子美景 周杰伦', '让美女缺氧 靠在你肩膀 我微笑在你旁边撑
  15. 伞 冼佩瑾/方文山', 'TWL251607101 方文山', '我心里满满都是你你你 黄俊郎', '为了它神魂颠倒 周杰伦', '她会遇到更好的男
  16. 人 方文山', '你在渡船口 方文山', '我爱过的谁 方文山', '爱上你只需一秒 周杰伦', '已开始想念 方文山', '方文山', '我将
  17. 你 深埋在 心里面 方文山', '若生活 要微笑 看着我就好 周杰伦', '这是借口你应该懂吧 罗宇轩/黄婕熙', '缺氧的感觉 方文山
  18. ', '雨的声音           方文山', '(袁)哈哈哈哈哈哈哈哈哈嘿   黄俊郎', 'then you and I would simply fly away 宋健彰/
  19. 黄俊郎', '(合)我的快门里 你是永恒    周杰伦', '不可以  方文山', '爱情的酸甘甜 周杰伦', '哈啾~   周杰伦', "Deep within I'm in love  方文山", '赐我爱上 你的力量  周杰伦', '只能活在我的手中  周杰伦', '我们都在等雨停       方文山', '
  20. 像猫一样的舞步我会记住 周杰伦', '我只好再亲吻你一遍 方文山', 'SP : Sony/ATV Music Publishing 方文山', '不用抉择 我
  21. 会自动变朋友 方文山', ' 合:对的人 不对的时间 却放不掉 方文山', '一句话开心自由 黄淩嘉', '跨越爱的时差 方文山', '  
  22. 剑出鞘恩怨了 林义杰', '在现在 在未来 我为你喝彩 周杰伦', '请你别太得意 周杰伦', '沙滩上有你的脚印 是一辈子美景 方文
  23. 山', '哇靠高速奔向目标 靠 ~ 靠 方文山', '决定你一生的内容(你 的爱情 已 经注定) 周杰伦', '落大雨我没你会艰苦 周杰伦', '我的城堡说欢迎光临 罗宇轩/李汪哲', '还牵着 你的手 周杰伦', '当了一天情人以后 我怕你会嫌不够 方文山', '目送你越走
  24. 越远的悲伤 黄俊郎', '我喜欢你胜过Money 方文山', '有爱就不累 唐从圣', '变世代传承的经典 方文山', 'Oh oh Oh oh 最后一
  25. 个 是我 方文山', '摧毁却无法击溃 我要爱上谁 黄俊郎', '只为永恒的乐曲存在\xa0醒过来 黄俊郎', '你的灵魂属于我 方文山', '爱在西元前 爱在西元前 方文山', '我不配 我不配 谢谢 方文山', '………… 方文山', '你却还让我出糗 方文山', '~~End~~ 周
  26. 杰伦', '我的认真败给黑色幽默 方文山', '原来回忆是如此温馨 邱凯伟/Yannick/周杰伦', '一直陪着我 方文山', '我却得到你
  27. 安慰的淘汰 黄俊郎', '再来一次\xa0\xa0\xa0\xa0再来一次 方文山', '哦 持续着甜蜜 周杰伦/蔡振南', '难道你手不会痛吗 方
  28. 文山', '雨下一整晚 方文山', '越过你划的线 我定了勇气的终点 黄俊郎', '只为永恒的乐曲存在 醒过来 古小力/黄淩嘉', '再
  29. 次拥抱一分一秒都好 方文山', '伽蓝寺听雨声盼 永恒 黄俊郎', '再来一次 最后一次 再补一次~ 周杰伦', '赶快回来到我心里  
  30. 方文山', '雨下一整晚 方文山', '我会不会瞬间麻痹 方文山', '过去被翻阅 结局满天的 风雪 方文山', 'ISRC TW-K97-10-016-09 周杰伦', '我看不懂我会更难过 周杰伦', '因为超人不能流眼泪 弹头', '哎呦哎 熊猫人 看我一声吼叫 方文山', 'ISRC TW-K97-08-015-01 周杰伦', '我只有一天的回忆 黄俊郎', 'ISRC TW-K97-08-015-03 古小力/黄淩嘉', '爱已不存在 方文山', 'ISRC TW-K97-08-015-05 方文山', '要怎么停呢 方文山', 'ISRC TW-K97-08-015-07 方文山', 'ISRC TW-K97-08-015-08 方文山', 'ISRC TW-K97-08-015-09 黄俊郎', '最明亮的是寂寞 周杰伦', '回家吧 回到最初的美好 方文山', '盔甲 方文山', '啊~~~~~ 方文山', '要我怎么捡 要我怎么捡 宋健彰', '最美的爱情 回忆里待续 方文山', '却将你的爱完全吸收 谢谢 周杰伦', '不是因为在乎  
  31. 方文山', '还是错过的爱情 周杰伦', '哎哟 这位长得很像方文山的先生哦 方文山', ' 徒留我孤单在湖面成双 方文山', '我好想
  32. \xa0再咬一口 黄俊郎', '牛仔很忙的 周杰伦', '美丽的外婆手挽着外公外公 站在风中慈祥地笑(幸福中慈祥) 方文山', '啦 啦
  33. 啦 啦 . . . 方文山', ' 今生我把酒奉陪 方文山', '我们精武出手无人能躲 方文山', '漂亮的旋风踢 一身正气 哼 方文山', '免得你说我吃你豆腐 方文山', '用一生 去等待 方文山', '我用漂亮的押韵\xa0形容被掠夺一空的爱情 方文山', ' 因为爱你我知
  34. 道 方文山', ' woo 谢谢 黄俊郎', '牛仔很忙的 周杰伦', 'ISRC TW-K97-07-01302 方文山', 'ISRC TW-K97-07-01303 方文山',
  35. '我微笑在你旁边撑伞 方文山', '你是友情还是错过的爱情 方文山', '我等效忠 浴火为龙 方文山', '我不配 方文山', '你这样
  36. 说我有一点伤心 方文山', '却将你的爱完全吸收 周杰伦', '我眼泪不会掉下来 掉下来  黄俊郎', '男子汉就是我 你已经爱上我~ 周杰伦', '啦啦啦啦啦啦啦啦啦啦            方文山', '要我怎么捡 方文山', '混音录音室:VIP STUDIO  黄俊郎', '黑色的
  37. 墨 染上安详 周杰伦', '天使的魔法 温暖中慈祥 方文山', '合:用一生去等待 方文山', '啦啦啦啦啦 宋健彰', '最美的爱情回
  38. 忆里待续 周杰伦', '哎呦哎呦喔 哎呦哎呦喔嘿 方文山', '弦乐录音室:计划生育录音室(北京)/Room19 Studio (台北) 周杰伦', 'ISRC:TW-C23-06-00-118 / CN-E04-06- 方文山', '因为爱你我知道 方文山', '徒留我孤单在湖面成双 方文山', '我们精武出
  39. 手无人能躲 林夕', ' 录音工程录音室:杨大纬录音工作室 周杰伦', '哪儿有大头贴 方文山', '混音录音室 : VIP STUDIO 方文
  40. 山', ' 混音录音室:杨大纬录音工作室 方文山', '今生我把酒奉陪 周杰伦', '就让回忆永远停在 那里 周杰伦', '拍了什么 Oh
  41. Oh 什么都没有 宋健彰', '我要的只是你在我身边 方文山', '在虚拟土壤 黄俊郎', '继续前进 方文山', '我好想再咬一口 方文
  42. 山', '混音录音室:杨大纬录音工作室 方文山', '故事中的我们在演自己的人生 方文山', '停止狼狈 就让错纯粹 徐若瑄', ' 混
  43. 音师 : 樊乃纲(J&A录音室) 周杰伦', '我的认真败给黑色幽默 方文山', 'いち に さん し 方文山', '混音工程:杨大纬(杨大
  44. 纬录音工作室) 方文山', 'ISRC-TW-C23-02-003-10 黄俊郎', ' Scratch : 郭正男/江尚谕 方文山', '荒烟蔓草的年头就连分手都
  45. 很沉默 方文山', '混音助理:刘勇志 方文山', 'ISRC: TW-C23-04-007-02 周杰伦', '把温暖放回口袋 方文山', ' 天刚刚破晓  
  46. 方文山', '她被芒草割伤 方文山', ' 她的睫毛 谢谢 周杰伦', '但故事的最后你好像还是说了拜\u200b拜 曾郁婷', '我舍不得离
  47. 开 周杰伦', '(Hoi Ya E Ya 那鲁湾 Na E Na Ya Hei) 方文山', '成熟的 我说的 我说的 约好一起逛 徐若瑄', '\xa0后知后觉  
  48. 黄俊郎', '...... 方文山', '方文山', '周杰伦', '刘畊宏', '方文山', '张震岳', '谢谢 方文山', '观念不及格 其他全部是垃
  49. 圾 徐若瑄', ' 谢谢 宋健彰', ' 带来下一首歌曲:借口 谢谢 周杰伦', '谢谢 宋健彰', ' 方文山', '像这样的生活 我爱你 你爱
  50. 我 方文山', ' 谢谢 周杰伦', '谢谢 方文山', '【希望两年后我们可以在这边见面,好不好?】 方文山', ' 荒烟漫草的年头就
  51. 连分手都很沉默 黄俊郎', ' woo~谢谢 谢谢你们来 方文山', '观念不及格 其他全部是垃圾 周杰伦', '如果难过 请你忘了我 黄
  52. 俊郎', '将炮马尽用(却从来没有人懂) 宋健彰', '读完了依赖 我很快就离开 方文山', 'ISRC : TW-C23-04-007-07 刘畊宏', '溃散在薄雾中 方文山', '这个世界约好一起逛 方文山', '跌跌撞撞 她被芒草割伤 黄俊郎', '你已快看不见 方文山', '录音助理
  53. :刘勇志 黄俊郎', '在我忘记之前  周杰伦', '沉沦假象你只会感到更加沮丧 周杰伦', '但故事的最后你好像还是说了拜 方文山
  54. ', '混音工程 : 杨大纬 (杨大纬录音工作室) 曾郁婷', '我舍不得离开 方文山', ' 混音助理:刘勇志 方文山', '洋溢幸福的味
  55. 道 徐若瑄', '混音助理:刘勇志 周杰伦', '这种艺术真的很难领悟 方文山', 'いちにさんし 方文山', '爷爷泡的茶难喝也要说
  56. 好喝 许世昌', '拥有你我的世界才能完美 周杰伦', '所以你弃权 刘畊宏', '想回到过去 方文山', '别怪我 周杰伦', '没人绑着
  57. 你走才快乐 周杰伦', ' 是因为我太爱你 周杰伦', '我的认真败给黑色幽默 陶喆', '我只希望能再能够再一次回到那个美丽时光
  58. 里 周杰伦', '它一定实现 方文山', '我就是那条龙 方文山', '作词: 方文山', '一九四三 毛华锋', '为什么 方文山', '但那个
  59. 人已经不是我 方文山', '用谦卑的身份 周杰伦', '所以你弃权 许世昌', ' 混音助理 : 刘勇志 方文山', 'ISRC-TW-C23-02-003-04 方文山', 'ISRC-TW-C23-02-003-05 周杰伦', '没人绑着你走才快乐 方文山', 'ISRC-TW-C23-02-003-07 刘畊宏', '想回到过
  60. 去 方文山', 'ISRC-TW-C23-02-003-03 方文山', '耍花枪 比谁都漂亮 接着唱一段 虞姬和霸王 方文山', '混音工程:杨大纬(杨
  61. 大纬录音工作室) 方文山', '却怎么也写不出 给你的原谅 方文山', ' 混音 : 杨大纬 (杨大纬录音工作室) 方文山', '拒绝再相
  62. 信 方文山', '哭出声 无人惜命命 方文山', '原来最动人的声音就是你 方文山', 'ISRC-TW-C23-00-001-04 方文山', '才八岁我
  63. 的天! 方文山', '滚去睡觉 方文山', '别人的土地再美好 也比不上自个儿的巢 方文山', 'ISRC-TW-C23-00-001-10 周杰伦', '总
  64. 有一天我有属于我的天 方文山', '吼哦~哦 周杰伦', 'Wu~~~~~~~~~~! 周杰伦', '痛是我们在痛 痛 徐若瑄', '我爱你 你爱我  
  65. 徐若瑄', '这些我都做得到但那个人已经不是我 方文山', '后悔着对不起 方文山', '混音工程 : 杨大纬 (杨大纬录音工作室) 周
  66. 杰伦', '是因为我太爱你 方文山', 'ISRC-TW-C23-00-001-02 周杰伦', 'ISRC-TW-C23-00-001-03 方文山', '有话去对医药箱说  
  67. 别怪我 徐若瑄', '我知道这里很美但家乡的你更美 方文山', '一只令它心仪的母斑鸠 徐若瑄']
复制代码

歌名也留在了上面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 21:12:40 | 显示全部楼层    本楼为最佳答案   
Py与C。。。 发表于 2022-8-10 21:06
我试了一下,发现还是不太理想:
我又加了一个replace用于把“作词:”替换掉,但是结果是:

  1. import re
  2. f = open("歌词字典.txt","r",encoding="utf-8")

  3. result = f.read()
  4. resultList = re.findall(r"作词 : [\u4E00-\u9FA5A/]+",result)
  5. print(resultList)

  6. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 21:16:03 | 显示全部楼层
  1. re.findall(r'作词 : (.+?) ', data.replace('\\n', ''))
复制代码

可以试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 21:23:07 | 显示全部楼层

但是为什么(.*?)不行呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 21:27:52 | 显示全部楼层
  1. '方文山', '周杰伦', '方文山', '方文山', '方文山', '周杰伦', '曾郁婷', '周杰伦', '方文山', '徐若瑄', '黄俊郎', '方文
  2. 山', '方文山那混乱的年代朝廷太腐败人祸惹天灾东汉王朝在一夕之间', '周杰伦乘着风', '刘畊宏一盏黄黄旧旧的灯时间在旁闷
  3. 不吭声寂寞下手毫无分寸不懂得轻重之分沉默支撑跃过陌生静静看着凌晨黄昏你的身影', '方文山畊宏', '张震岳原唱', '方文山', '徐若瑄', '宋健彰', '周杰伦', '宋健彰', '方文山', '方文山', '周杰伦', '方文山', '方文山', '黄俊郎', '方文山', '周

  4. 还是不行
  5. 杰伦', '黄俊郎', '宋健彰', '方文山', '刘畊宏', '方文山', '方文山', '黄俊郎', '方文山', '黄俊郎', '周杰伦', '周杰伦', '方文山', '曾郁婷', '方文山', '方文山', '徐若瑄', '周杰伦', '方文山', '方文山', '许世昌', '周杰伦', '刘畊宏', '方
  6. 文山', '周杰伦', '周杰伦', '周杰伦', '陶喆', '周杰伦', '方文山', '方文山', '毛华锋', '方文山', '方文山', '周杰伦',
  7. '许世昌', '方文山', '方文山', '周杰伦', '方文山', '刘畊宏', '方文山', '方文山', '方文山', '方文山', '方文山', '方文
  8. 山', '方文山', '方文山', '方文山', '方文山', '方文山', '方文山', '方文山', '周杰伦', '方文山', '周杰伦', '周杰伦',
  9. '徐若瑄', '徐若瑄', '方文山', '方文山', '周杰伦', '方文山', '周杰伦', '方文山', '徐若瑄', '方文山', '徐若瑄']  
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 21:29:24 | 显示全部楼层
Py与C。。。 发表于 2022-8-10 21:23
但是为什么(.*?)不行呢?

也不是不行,\n前面多加一个\就可以了
"作词 : (.*?)\\n"

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
Py与C。。。 + 1 + 1 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-8-10 21:33:40 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-10 21:34:19 | 显示全部楼层
临时号 发表于 2022-8-10 21:29
也不是不行,\n前面多加一个\就可以了
"作词 : (.*?)\\n"

谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 23:10:37 | 显示全部楼层
  1. with open('./歌词字典.txt', 'r',encoding='utf-8') as f:
  2.     msg=(str(f.read()))
  3. print(re.findall('作词 : (\w+/\w+|\w+)',msg))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 22:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表