2017-07-27 93 views
0

過濾字符串的病情,我有串這樣如何使用python

s ='Jacky Chan || He is a CEO ||Managing Director and General Partner, B Robotics || San Francisco Bay Area' 

我怎麼能過濾掉「他是一個CEO」基於關鍵字「CEO」在字符串中的部分看起來像這樣使用python ?

output: 
'Jacky Chan||Managing Director and General Partner, B Robotics || San Francisco Bay Area' 
+0

由於每個部分之間用'||'分開,所以可以調用's.split('||')',這將返回一個單獨部分的列表。 –

回答

2

如果我們使用的分隔符||分割字符串,我們可以檢查每個拆分,並只將其包含在我們的新字符串中,如果它不是包含字符串'CEO'

'||'.join(substr for substr in s.split('||') if 'CEO' not in substr) 
1

您可以拆分||上的字符串,然後重新加入,但不包括該段。所以:

s ='Jacky Chan || He is a CEO ||Managing Director and General Partner, B Robotics || San Francisco Bay Area' 

s = s.split('||') 

s = '||'.join(x for x in s if 'CEO' not in x) 

而且把它放在一起的理解:

'||'.join(x for x in s.split('||') if 'CEO' not in x) 

這裏也是一個正則表達式版本:

re.sub(r'\|\|[A-z\s]*[CEO]+[A-z\s]*\|\|', "||", s) 
2
s ='Jacky Chan || He is a CEO ||Managing Director and General Partner, B Robotics || San Francisco Bay Area' 
y = "||".join([a for a in s.split("||") if not 'CEO' in a]) 
print(y) 
3

看起來你正在使用"||"爲您的字符串的部分之間的分隔符,這樣通過分隔符分割你的字符串:

parts = s.split("||") 

那你說"CEO"是過濾掉一部分的關鍵字,因此得到不具有"CEO"在每一個部分:

filtered = [part for part in parts if "CEO" not in part] 

最後,把它重新走到一起:

output = "||".join(filtered) 

現在你

>>> print output 
Jacky Chan ||Managing Director and General Partner, B Robotics || San Francisco Bay Area 

我假設你張貼的輸出是正確間距。如果沒有,那麼在這裏還有別的事情要做。你必須爲我澄清。

1

你可以找CEO並奪走了||隔板之間的一切,含有它,如:

s ='Jacky Chan || He is a CEO ||Managing Director and General Partner, B Robotics || ' \ 
    'San Francisco Bay Area' 

index = s.find("CEO") # or any other string 
if index != -1: # string found 
    replaced = s[:s.rfind("||", 0, index)] + s[s.find("||", index):] 
    print(replaced) 

# Jacky Chan ||Managing Director and General Partner, B Robotics || San Francisco Bay Area 
3

沒有什麼不對的其他答案的,但爲了完整起見,這裏是你如何能做到它與正則表達式。假定|只有用於分隔。

import re 
s ='Jacky Chan || He is a CEO || Managing Director and General Partner, B Robotics || San Francisco Bay Area' 
print(re.sub(r'\|\|[^|]*CEO[^|]*\|\|', '||', s)) 

您可以在the documentation中瞭解正則表達式的所有信息,包括Python特有的位。