Найти - Пользователи
Полная версия: Парс строк
Начало » Центр помощи » Парс строк
1
maloun
Доброго времени суток, я в питоне без пяти минут и уже зафейлился по полной.
Нужно составить алгоритм - фильтр строки на “A”-“Z”, “a”-“z”, “0”-“9”, “\”, “_”, “ ”
я вижу это так:

input = "my_str+---=()" 
result = "";
for char in input:
   if Char_in_A_Z_upper(char): result = result + char; 
   if Char_in_0_9(char): result = result + char; 
   if Char_in_a_z_lower(char): result = result + char; 
   if Char_in_additional(char): result = result + char;

но даже в этом перекостыльном способе я не знаю как составить эти функции,
объясните, как регэкспами сделать или хотябы char_in_range функцию
Budulianin
maloun
фильтр строки на “A”-“Z”, “a”-“z”, “0”-“9”, “\”, “_”, “ ”
Покажи входные данные и ожидаемый результат.
Непонятно что “фильтр” должен делать.
maloun
Budulianin
Покажи входные данные и ожидаемый результат.

я нашел как это написать,
но может че попроще посоветуете,
вот так в общем-то должно получиться

input = “string_te+-===st”
outout = “string_test”

Str = "string_te+-===st"
def char_in_range(AChar, AFirstChar,ALastChar):
  Range = " ".join(map(chr, range(ord(AFirstChar),ord(ALastChar)+1)))
  for Char in Range:
     if Char == AChar: return True     
  return False
result = " "
for char in Str:
  if char_in_range(char, '0', '9'):
      result = result + char
  if char_in_range(char, 'A', 'Z'):
      result = result + char
  if char_in_range(char, 'a', 'z'):
      result = result + char
  if char == "\\":
      result = result + char
  if char == "_":
      result = result + char
  if char == " ":
      result = result + char
print(result)
>>> ================================ RESTART ================================
>>> 
 string_test
Budulianin
Не, судя по твоему коду не так надо тебе.

''.join(re.findall(r'[a-zA-Z0-9\\ _]', input))

или так

re.sub(r'[^a-zA-Z0-9\\ _]', '', input)
Budulianin
maloun
и как же составить строку попадающую под описание “всё кроме A-Z,a-z,0-9,\\,\_,\s” ?

Не всё кроме, а пропустить все символы, кроме A-Z,a-z,0-9,\\,\_,\s.

У твоего кода такая логика. Я просто на него не посмотрел сначала.
maloun
спасибо за апишки и пример использования,
теперь знаю в какую сторону копать
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB