Я использую регулярные выражения в бите в python, и я немного озадачен, казалось бы, легкой проблемой. Я пытаюсь сопоставить строку вида:python regex: skip word
output wire some_net,
Теперь слово провод может быть там, или оно не может быть. Я также хочу, чтобы захватить слова выхода (также может быть вход) и some_net (переменное слово) Таким образом, если мы имеем следующий формат:
output wire some_net,
Я хочу, чтобы захватить output
и some_net
,
Но если мы имеем формат:
output some_net,
Я все еще хочу струна, чтобы соответствовать output
и some_net
быть захвачены.
регулярное выражение, которое я пытался это было:
re.compile(ur'^\s*(?P<io>output|input)\s+(?:wire\s+|\s+)(?P<net>\w+)', re.U),
Но это не работает, она захватывает слово wire
в тестовой строке:
output wire [2:0] some_net, // some comment
На самом деле, я не» t хочу совпадение для вышеупомянутой тестовой строки (у меня есть другое регулярное выражение, чтобы справиться с этим.
Итак, есть ли способ удовлетворить эту ситуацию?
вы разборе Verilog файл? – PYPL
@PYPL Я действительно! Я пишу небольшой скрипт для сопоставления списков портов в файле verilog, чтобы убедиться, что они соответствуют –
@AvinashRaj Я не понимаю ваш комментарий. Я знаю, что [не является символом слова. [2: 0] в тестовой строке не во всех строках. –