2017-09-08 1 views
0

Ich möchte Textabschnitte basierend auf mehreren Bedingungen teilen. Ich möchte den ganzen Text vor den identifizierten Gegenständen nehmen. Die einzelnen Titel dürfen MULTIPLE-Leerzeichen zwischen ihnen haben, nicht nur eines, wie es hier angegeben ist, und möchten auch damit umgehen können.Text unter mehreren Bedingungen teilen

Es gibt zwei Probleme:

  1. Schleife über mehrere Titel (nicht alle hier angegeben)
  2. die
  3. unterschiedliche Menge an Räume zwischen ihnen haben

Ich habe versucht, die folgenden:

job_titles = ['senior payroll specialist', 'employment coordinator'] 

import re 
string = 'some text that has a bunch of words in it Blank Name senior payroll specialist 
with a bunch of words after this that are not needed' 
out = re.split('senior payroll specialist', string)[0] 
out = re.split('senior payroll specialist', out)[0] 

Danke

Antwort

0

Vielleicht erwägen Sie, Ihre geteilten Strings zu einem regulären Ausdruck zu kombinieren. Zum Beispiel:

bash-3.2$ python3 
Python 3.6.2 (default, Jul 17 2017, 16:44:32) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

>>> job_titles = ['senior payroll specialist', 'employment coordinator'] 
>>> string = ('some text that has a bunch of words in it ' 
... 'Blank Name senior payroll specialist with the words ' 
... 'employment coordinator and words after this that are not needed') 

>>> import re, pprint 
>>> pat = "(" + "|".join(job_titles) + ")" 
>>> pprint.pprint(re.split(pat, string)) 
['some text that has a bunch of words in it Blank Name ', 
'senior payroll specialist', 
' with the words ', 
'employment coordinator', 
' and words after this that are not needed'] 
>>> 
+0

Ahh. Das funktioniert. Ich endete mit einer For-Schleife über alle Titel. Dies sieht so aus, als würde es möglicherweise etwas schneller laufen. – ktj1989

Verwandte Themen