Python 基于正则表达式和保留匹配模式的标记化

Python 基于正则表达式和保留匹配模式的标记化,python,regex,bash,Python,Regex,Bash,我想使用正则表达式模式分割一个文件,使该文件在以下三个分隔符上标记 / & ? 条件是我希望在最终输出中保留分隔符 e、 g 输入文件: /wp-admin/wellsfargo/index.html/ /e1452e05fde1b15e51fc5a30065a5689?login=_&.verify?service=_&data:text/html;charset=_ /hZfAh /wp-admin /wellsfargo /index.html /e1452e05fde1

我想使用正则表达式模式分割一个文件,使该文件在以下三个分隔符上标记

  • /
  • &
  • ?
  • 条件是我希望在最终输出中保留分隔符

    e、 g

    输入文件:

    /wp-admin/wellsfargo/index.html/
    /e1452e05fde1b15e51fc5a30065a5689?login=_&.verify?service=_&data:text/html;charset=_
    /hZfAh
    
    /wp-admin
    /wellsfargo
    /index.html
    /e1452e05fde1b15e51fc5a30065a5689
    ?login=_
    &.verify
    ?service=_
    &data:text
    /html;charset=_
    /hZfAh
    
    预期输出:

    /wp-admin/wellsfargo/index.html/
    /e1452e05fde1b15e51fc5a30065a5689?login=_&.verify?service=_&data:text/html;charset=_
    /hZfAh
    
    /wp-admin
    /wellsfargo
    /index.html
    /e1452e05fde1b15e51fc5a30065a5689
    ?login=_
    &.verify
    ?service=_
    &data:text
    /html;charset=_
    /hZfAh
    

    如何使用Python或Bash执行此操作?

    假设您的输入存储在变量
    s
    中,您可以将
    re.findall
    与以下正则表达式模式一起使用:

    import re
    print('\n'.join(re.findall(r'[/&?][^/&?\n]+', s)))
    
    这将产生:

    /wp-admin
    /wellsfargo
    /index.html
    /e1452e05fde1b15e51fc5a30065a5689
    ?login=_
    &.verify
    ?service=_
    &data:text
    /html;charset=_
    /hZfAh
    

    到目前为止您尝试了什么?您需要包括您当前的尝试,并描述出现了什么问题。这里的用户反对只给他们一个简短的任务来完成,因为这是显而易见的reasons@Clive我是一个新手,想知道为什么我被否决了。非常感谢你指出我的错误。从现在起我会处理这件事的。