Python正则获取字符的问题

新手上路,请多包涵

从下面类似的字符中提取:
昵称|:莫四师伯|性别|:男|地区|:江苏 南京

我想从中获取准确的昵称,性别和地区应该这么写比较好,能够获取匹配后的group(1),在各方博客里面没有找到比较好的解答。
第一次提问,有什么不合适的请指正。

阅读 2.7k
2 个回答

使用

[^\|]+

匹配出来的结果就将字符串以|进行分隔得到的所有子串,只是要匹配出昵称,性别和地区(除:号)的话,可用:

昵称\|:([^\|]+)\|性别\|:([^\|]+)\|地区\|:([^\|]+)

注意所有|号都要用反斜杠

只需要取昵称的话可以简单点

import re
source = "昵称|:莫四师伯|性别|:男|地区|:江苏 南京"
rex = re.compile(r'昵称\|:(.*?)\|')
print rex.search(source).group(1)

运行输出

莫四师伯
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题