Проверьте, является ли результат регулярного выражения 'None' для условного оператора If? - PullRequest
0 голосов
/ 05 марта 2020

Попытка пропустить действие, когда результат регулярного выражения возвращается как 'Нет':

    for idx, val in enumerate(S):
        num = re.search('(?<=Number\': )[^,]+', val)
        name = re.search('(?<=Name\': )[^,]+', val)

        if num and name:
            S_C.append(['S' + num.group(0).strip('\''), name.group(0).strip('\'')])
            print('yes')

Результат регулярного выражения для моего кода действительно возвращает не ненулевые значения, но If num and name:, похоже, не Работа. If num is not None

Включенный список:

S = [ {'IsMissing': 'false', 'Name': 'Trans2', 'Number': '2', 'ProgrammingLanguage': 'LAD'}~FlgNet {}~Parts {}~Access {'Scope': 'LocalVariable', 'UId': '21'}~Symbol {}~Component {'Name': 'DATA'}~Component {'Name': 'sOFF'}~Access {'Scope': 'LocalVariable', 'UId': '22'}~Symbol {}~Component {'Name': 'Me'}~Component {'Name': 'SEQ11'}~Component {'Name': 'mCMPL'}~Part {'Name': 'Contact', 'UId': '23'}~Part {'Name': 'Contact', 'UId': '24'}~Part {'Name': 'O', 'UId': '25'}~TemplateValue {'Name': 'Card', 'Type': 'Cardinality'}~Part {'Name': 'TrCoil', 'UId': '26'}~Wires {}~Wire {'UId': '27'}~Powerrail {}~NameCon {'UId': '23', 'Name': 'in'}~NameCon {'UId': '24', 'Name': 'in'}~Wire {'UId': '28'}~IdentCon {'UId': '21'}~NameCon {'UId': '23', 'Name': 'operand'}~Wire {'UId': '29'}~NameCon {'UId': '23', 'Name': 'out'}~NameCon {'UId': '25', 'Name': 'in1'}~Wire {'UId': '30'}~IdentCon {'UId': '22'}~NameCon {'UId': '24', 'Name': 'operand'}~Wire {'UId': '31'}~NameCon {'UId': '24', 'Name': 'out'}~NameCon {'UId': '25', 'Name': 'in2'}~Wire {'UId': '32'}~NameCon {'UId': '25', 'Name': 'out'}~NameCon {'UId': '26', 'Name': 'in'}~]

S_C = []   # empty for appending

Я использую [Python 3.7] и [PycCharm CE]. ] с [повторный модуль]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...