我需要从.xlsx文件中的自由文本字段中解析特定的字符串。我在Spyder中使用Python 2.7。
编辑:我逃脱了'。在正则表达式中,但是我仍然遇到相同的错误。
为此,我使用了pandas将.xslx文件转换为pandas数据框:
data = "complaints_data.xlsx"
read_data = pd.read_excel(data)
read_data.dropna(inplace = False)
df = pd.DataFrame(read_data)
df['FMEA Assessment'] = df['FMEA Assessment'].replace({',':''},regex=True)
然后,我使用大熊猫的提取功能使用正则表达式模式提取我的字符串字段FMEA,Rev和Line。
fmea_pattern = r'(FMEA\s*\d*\d*\d*\d*\d*|fmea\s*\d*\d*\d*\d*\d*|DOC\s*\-*[0]\d*\d*\d*\d*\d*|doc\s*\-*[0]\d*\d*\d*\d*\d*)'
df[['FMEA']] = df['FMEA Assessment'].str.extract(fmea_pattern,expand=True)
rev_pattern = r'(Rev\.*\s+\D{1,2}+|rev\.*\s+\D{1,2}|REV\.*\s+\D{1,2}|rev\.*\s+\D{1,2})'
df[['REV']] = df['FMEA Assessment'].str.extract(rev_pattern,expand=True)
line_pattern = r'(line item\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|Line\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|lines\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|Lines\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|Line item\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|LInes\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|LINE\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.)'
df[['LINE']] = df['FMEA Assessment'].str.extract(line_pattern,expand=True)
我需要解析的字符串字段可以通过各种方式输入,并且我在regex公式中以及每种单词的变体形式中都做了说明。例如,我考虑了line,Line,LINE,line,Line等。我分别测试了regex公式,它们工作正常。但是,当我在上面的代码中结合所有它们时,得到以下错误消息:
能帮我解决此问题吗?
还有,还有另一种方法可以同时解释同一单词的变体(小写,大写和标题大写)吗?
谢谢!