代码之家  ›  专栏  ›  技术社区  ›  kerberos

如何在python中使用RE提取字符串?

  •  -7
  • kerberos  · 技术社区  · 8 年前

    这是一个字符串:

    'ObjectId("5a60a394ac73c233ba1acc55")'
    

    我想得到“ 5a60a394ac73c233ba1acc55 “,如何使用regex?

    1 回复  |  直到 8 年前
        1
  •  1
  •   jrjames83    8 年前

    这似乎是个疯狂的问题,但为什么不呢

    >>> myval = 'ObjectId("5a60a394ac73c233ba1acc55")'
    >>> myval.split("(")[1]
    '"5a60a394ac73c233ba1acc55")'
    >>> myval.split("(")[1].split(")")[0]
    '"5a60a394ac73c233ba1acc55"'
    >>> import re
    
    >>> re.findall('[a-zA-z0-9]', myval.split("(")[1].split(")")[0])
    ['5', 'a', '6', '0', 'a', '3', '9', '4', 'a', 'c', '7', '3', 'c', '2', '3', '3', 'b', 'a', '1', 'a', 'c', 'c', '5', '5']
    
    >>> "".join(re.findall('[a-zA-z0-9]', myval.split("(")[1].split(")")[0]))
    '5a60a394ac73c233ba1acc55'