Сопоставление на коррексе с негативным взглядомPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сопоставление на коррексе с негативным взглядом

Сообщение Anonymous »

Я анализирую исходные файлы C.
Я хочу соответствовать всем переменным (в формате змеи), которые заканчиваются в _value и не начинайте с Cana _ , canb_ < /code> ...,. Мне нужно сопоставить все имя переменной для последующей замены. < /P>
Это моя текущая настройка с Python < /p>

Код: Выделить всё

import re

def signal_ending_VALUE_updater(match: re.Match) -> str:
groups = match.groupdict()
return some_operation_on(group["SIGNAL_NAME"])

REGEX=r"(?\w+_VALUE)\b"

with open(file_path,'r') as f:
content = f.read()
content_new = re.sub(REGEX,signal_ending_VALUE_updater,content)
< /code>
К сожалению, эта регуляция не работает все время, например, если мы попробуем эту тестирование < /p>
test="        shared->option.mem = ((canAGetScuHmiVehReqLiftModBtnSt() == CANA_SCU_HMI_VEH_REQ_LIFT_MOD_BTN_ST_PRESSED_VALUE) ||"
re.find(REGEX,test)
< /code>
вернет переменную (CANA_SCU_HMI...
), что я не хочу соответствовать. br />
  • Код: Выделить всё

    (?\w+_VALUE)< /code>:
    
    (?P...)
    : группа совпадает с именем signal_name
  • То же, что и [a-za-z0-9 _] будет соответствовать именам переменных snakecase
  • обеспечивает один или несколько до
  • соответствует буквальной строке _value в конце имени переменной.
[*] Это снова граница слов, которая гарантирует, что совпадение заканчивается сразу после имени переменной.


Подробнее здесь: https://stackoverflow.com/questions/794 ... -assertion
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»