Python正则获取字符的问题


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

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

python 正则表达式

apm100 9 years ago

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


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

运行输出


 莫四师伯

RatriX answered 9 years ago

使用


 [^\|]+

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


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

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

real圣 answered 9 years ago

Your Answer