Как удалить строку, если она не содержит буквы в python

0

Вопрос

Я хочу удалить строку из строки, если она не содержит никакой буквы, и передать, если она содержит букву или цифры. Я пытаюсь решить эту проблему с помощью регулярного выражения в python, но не могу удалить строку. пример

string='''हिरासत में ली गई महिला 36 वर्षीय नूर सजात कमरुज़्ज़मा थीं
          British High Commissioner Greets
          
          पत्ता आंबेडकर चौक, निमशीरगाव,
          निमिशरगाव, निरमशिरगाव, कोल्हापूर, NIMSHIRGAON, Nimshirgaon,
          Address: ambedkar chowk,
          महाराष्ट्र, 416101
          Nimshirgaon, Kolhapur, Maharashtra,
          416101
          1832
          1947'''

Результат, который я хочу

output=  '''British High Commissioner Greets
           Address: ambedkar chowk,
           Nimshirgaon, Kolhapur, Maharashtra,
           416101
           1832
           1947'''

пожалуйста, помогите мне выбраться!!!

data-structures pandas python python-3.x
2021-11-22 11:32:47
2

Лучший ответ

2

Вы можете использовать простое понимание с регулярным выражением, чтобы сопоставлять только строки с символами ascii:

import re
out = '\n'.join(s for s in string.split('\n') if re.match(r'^[\x00-\x7F]+$', s))
print(out)

выход:

          British High Commissioner Greets
          
          Address: ambedkar chowk,
          Nimshirgaon, Kolhapur, Maharashtra,
          416101
          1832
          1947
2021-11-22 11:53:46
1

Вот, держи. Какая бы строка не соответствовала шаблону (вы можете добавить больше символов в шаблон в зависимости от того, что вы хотите), она не будет добавлена к выводу.

Я думаю, что это решит вашу проблему.

import re

pattern = re.compile("[a-zA-Z0-9!@#$&()\\-`.+,/\"]+")

multilinestring = '''हिरासत में ली गई महिला 36 वर्षीय नूर सजात कमरुज़्ज़मा थीं
British High Commissioner Greets        
पत्ता आंबेडकर चौक, निमशीरगाव,
निमिशरगाव, निरमशिरगाव, कोल्हापूर, NIMSHIRGAON, Nimshirgaon,
Address: ambedkar chowk,
महाराष्ट्र, 416101
Nimshirgaon, Kolhapur, Maharashtra,
416101
1832
1947'''

split_list = multilinestring.splitlines()
output_list = []
for word in split_list:
    if pattern.match(word):
        output_list.append(word)

print(*output_list, sep = "\n")

Последняя строка выводит каждую строку в списке в отдельной строке. Вот результат:

British High Commissioner Greets        
Address: ambedkar chowk,
Nimshirgaon, Kolhapur, Maharashtra,
416101
1832
1947
2021-11-22 12:00:15

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................