Разобрать строку в Powershell и создать таблицу

Наивный подход для правильных английских предложений, не начинающийся с неалфаза и не содержащий цитируемых частей речи:

import re
text = """\
Mr. Smith bought cheapsite.com for 1.5 million dollars, i.e. he paid a lot for it. Did he mind? Adam Jones Jr. thinks he didn't. In any case, this isn't true... Well, with a probability of .9 it isn't.
"""
EndPunctuation = re.compile(r'([\.\?\!]\s+)')
NonEndings = re.compile(r'(?:Mrs?|Jr|i\.e)\.\s*$')
parts = EndPunctuation.split(text)
sentence = []
for part in parts:
  if len(part) and len(sentence) and EndPunctuation.match(sentence[-1]) and not NonEndings.search(''.join(sentence)):
    print(''.join(sentence))
    sentence = []
  if len(part):
    sentence.append(part)
if len(sentence):
  print(''.join(sentence))

Ложное положительное расщепление может быть уменьшено путем расширения NonEndings немного. В других случаях потребуется дополнительный код. [1]

Вы никогда не достигнете совершенства при таком подходе. Но в зависимости от задачи он может просто работать «достаточно» ...

-4
задан Vincenzo 17 January 2019 в 07:52
поделиться

1 ответ

Я должен признать, что это немного чрезмерное использование .replace(), но работать не с чем:

$mystring= "    S: Title = test S: Title = test2 S: Title = test3 S: Title = test4 
 TE: 2019-01-19T00:00:00Z TE: 2019-01-20T00:00:00Z TE: 2019-01-22T00:00:00Z TE: 2019-01-23T00:00:00Z "


$MyString.trim().replace(" S: Title = ",",").replace("T00:00:00Z TE: ",",").replace("TE: ","").replace("S: Title = ","").replace("T00:00:00Z","").replace(" ","") | convertfrom-csv

Вывод:

test         test2        test3        test4     
----         -----        -----        -----     
2019-01-19   2019-01-20   2019-01-22   2019-01-23

Было бы проще (и более заметным) реализовать эти шаги при создании строки.

0
ответ дан T-Me 17 January 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: