Кажется, я не могу использовать регулярное выражение с тем же символом в другом регулярном выражении с добавленными буквами - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь сопоставить регулярное выражение с буквой (D | d) , которая отлично работает. Однако компьютер неверно интерпретирует (ds | Ds | dS | DS) для первого регулярного выражения (D | d) и выдает ошибку в коде, потому что он пытается сопоставить с предыдущим регулярное выражение. Кстати, я попытался извлечь данные из Excel с помощью выражения (D | d), и он отлично работает. Есть ли какая-либо документация по reg exp для python, чтобы этого не произошло?

import re 
import pandas as pd

increment_data = pd.read_excel('Bamboo_Database.xlsx', sheet_name='Data_Sheet')  # pulls data from excel

DPattern = r"(D|d)"
DsPattern = r"(ds)|(DS)|(dS)|(Ds)"

y = input("Item #: ")

    if re.match(DPattern, y):  # Diet special dishes
        y = y.replace('d', '')
        y = y.replace('D', '')
        print(increment_data.loc[int(y)-1:int(y)-1, 'Diet_Special_Dishes':'$12'])

    if re.match(DsPattern, y):  # Daily Special
        y = y.replace('ds', '')
        y = y.replace('dS', '')
        y = y.replace('Ds', '')
        y = y.replace('DS', '')
        print(increment_data.loc[int(y)-1:int(y)-1, 'Daily_Special':'$15'])



** Сообщение об ошибке показывает, что компьютер сначала вводит оператор if и удаляет только "d" / "D" char.

Traceback (последний вызов последним): Файл "C: / Users / kevin / PycharmProjects / Linregression / bamboosales.py", строка 47, в печати (increment_data .loc [int (y) -1: int (y) -1, 'Diet_Special_Dishes': '$ 12']) ValueError: недопустимый литерал для int () с базой 10: 's1'

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