基于正则表达式的令牌化并保留匹配模式

时间:2018-10-08 11:29:56

标签: python regex bash

我想使用正则表达式模式分割文件,以便在以下三个定界符上对文件进行标记。

  1. /

条件是我想在最终输出中保留定界符。

例如

输入文件:

/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做到这一点?

1 个答案:

答案 0 :(得分:1)

假设您的输入存储在变量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