如何使用python regex从字符串中删除指定的模式?

时间:2018-12-19 06:38:30

标签: python regex

这是我的字符串'2018-01-31 05:29:37 | Jan Pong Lee | [Number of contacts]:1'

我想删除'| Jan Pong Lee |'。名称可以包含2个或4个单词,有办法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式匹配并用空字符串替换

\|[^|]*\|

此正则表达式的解释:该正则表达式基本上捕获|,然后零次或多次捕获任何字符(|除外),最后捕获|字符,然后停止捕获,并将所有匹配的字符替换为空字符串。

Live Demo

这是相同的python代码,

import re

s = '2018-01-31 05:29:37 | Jan Pong Lee | [Number of contacts]:1'
ret = re.sub(r'\|[^|]*\|', '', s)
print (ret)

在删除| Jan Pong Lee |之后,将打印剩余的字符串。无论这些管道中有多少字,这都将起作用。

2018-01-31 05:29:37  [Number of contacts]:1

答案 1 :(得分:0)

这是解决方法:

old_str =  '2018-01-31 05:29:37 | Jan Pong Lee | [Number of contacts]:1'
new_str = "{} | {}".format(old_str.split('|')[0], old_str.split('|')[2])