Чуть звуко буквенный разбор слова: Фонетический разбор слова чуть — звуки и буквы, транскрипция

Разбор строки с некоторыми определенными ключевыми словами для разделения (вне строковых литералов), но не для разделения внутри строковых литералов в Python

Могу ли я задать вопрос о проблеме, с которой я столкнулся в эти дни? Я был бы очень признателен, если бы вы, ребята, захотели помочь мне решить эту проблему 🙂

Итак, у меня есть эта простая строка, которую я хочу разобрать, используя ключевое слово ‘@’ (анализировать это только в том случае, если ‘@’ находится за пределами строка внутри строки). Причина этого в том, что я пытаюсь научиться анализировать некоторые строки на основе определенных ключевых слов для анализа/разделения, потому что я пытаюсь реализовать свой собственный «простой язык программирования»… 9″]*»\B)’, коды[x].split(‘println(‘)[-1].removesuffix(‘)\n’ или ‘)’)) переменные: список[str] = [] результат_для_тестирования: список[str] = [] для аргумента в диапазоне (0, len (print_args)): # Я не знаю, работает ли это, потому что строка разбивается на каждый пробел, но # если внутри строки есть пробелы, это будет считаться пробелами # это должно было быть разделено, но не должно быть разделено, потому что # потому что этот пробел находится внутри строки, которая находится внутри строки, а не снаружи # строка внутри строки.

# Пример 1: ‘»Привет, мир!» @ x @ y’ => [‘»Привет, мир!»‘, x, y] # Пример 2: ‘»Привет, мир!» @ x @ y’ => [‘»Привет, мир!»‘, x, y] # На этом этапе синтаксическому анализу не нужно беспокоиться о ненужных пробелах внутри строки, как в примере 2… сравните: list[str] = print_args[arg].split() # В основном проверяется, не находится ли ‘»‘ в проанализированной строке (в этом # случай — это слово, в котором нет ‘»‘). В противном случае добавьте все это для остальной части # элементы сравнения # Вот строка: ‘»Значение a: » @ a @ «String»‘ [например, 1] # Пример 1: [‘»Значение a: «‘, ‘a’, ‘»String»‘] (это верно) # Вот строка: ‘» Значение a: » @ a @ » String»‘ # Пример 2: [‘» Значение a: » @ a @ » String»‘] (это неверно) vars.append(compare[0]) if ‘»‘ не в compare[0] else vars.append(» «.join(compare[0:])) для v в диапазоне (0, len (vars)): # Эта штука просто выполняет свою работу, добавляя одни и те же элементы в ‘vars’ # к ‘result_for_testing’ result_for_testing.
append(vars[v]) печать (результат_для_тестирования)

После таких операций вывод, который я получаю для анализа основных вещей без лишних пробелов, выглядит следующим образом:

 string_to_be_parsed: str = '"Значение a: " @ a @ "String"'
Output > ['"Value of a is: "', 'a', '"String"'] # Как я и ожидал...
 

Но почему-то ломается, когда что-то вроде этого (с ненужными пробелами):

 string_to_be_parsed: str = '" Значение a: "@a @" String "'
Вывод > ['" Значение a: " @ a @ " String "']
# Неправильный результат, и я надеюсь, что результат будет таким:
Ожидаемый результат > [" Значение a: ", a, "String"]
# Если внутри строки есть пробелы, то это нужно просто игнорировать, но я не знаю, как это сделать
 

Хорошо, ребята, это проблемы, с которыми я столкнулся, и вывод:

  1. Как разобрать строку и разделить каждую строку внутри строки по ключевому слову ‘@’, но она не будет разделена, если ‘ @’ находится внутри строки в строке?
 Пример: '"@ в строке внутри строки" @ is_out_from_a_string'
Результат должен быть: ['"@ в строке внутри строки"', is_out_from_a_string]
 
  1. Как при синтаксическом анализе строк игнорировать все пробелы внутри строки в строке?
 Пример: '"здесь тоже лишние пробелы" @x@y@z "это тоже"'
В результате должно получиться: ['"здесь тоже лишние пробелы"', x, y, z, '"и этот тоже"']
 

Еще раз, я был бы очень признателен за вашу тяжелую работу, чтобы помочь мне найти решения для моих проблем, и если есть что-то, что я сделал неправильно или неправильное представление, пожалуйста, скажите мне, где и как я должен это исправить 🙂

Спасибо you 🙂

parsing — Удаление строковых литералов, которые на самом деле являются комментариями из исходного кода Python?

Мне нужно быстро написать (или позаимствовать) что-нибудь на любом языке, которое автоматически фильтрует тонны исходного кода Python, чтобы удалить комментарии. Цель состоит в том, чтобы сделать код на целевой платформе более компактным (и, кроме того, реверс-инжиниринг даже немного сложнее). Я определенно не должен изменять поведение кода и могу жить с несколькими оставшимися комментариями. Мой ввод и вывод должен быть текстовым файлом .py , который, как предполагается, является действительным python 2.x (предположим: ограничен ASCII, я позабочусь о UTF8).

Строго говоря, мне , а не нужно удалять комментарии вида, определенного

Комментарий начинается с символа решетки ( # ), который не является частью строковый литерал и заканчивается в конце физической строки.

, потому что токенизатор python уже делает это за меня, и в итоге код распространяется как .pyc . Жаль, потому что я ясно вижу, как правильно сделать и (единственная немного сложная часть — это запутанный синтаксис строкового литерала в python).

Моя проблема в том, что беглый взгляд на исходный код Python, который мне нужно отфильтровать, показывает, что он содержит множество комментариев, которые являются не введенными # , а просто строковыми литералами, которые не выполняют никакой полезной задачи. Они определенно хранятся в токенизированном файле .pyc . Мне сказали, что они повсюду, чтобы облегчить автоматическое создание документации и ее редактирование. Многие из этих строковых литералов, которые на самом деле являются комментариями, встроены в определения функций, например:

 по определению OnForceStatusChoice (я, событие):
    """Действие при выборе статуса"""
    self.ExecutionPanel.SetFocus()
 

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

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

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *