我是新来的正则表达式。我必须使用正则表达式根据模式将数据框行分为3列。
数据框中的示例行:
"Sample String(just a / string) 04/04/2014 to ongoing"
我正在尝试使用正则表达式,但无法正常工作
pat = re.compile("(?P<String_Name>[a-zA-Z- )(/ ]*)(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})(?P<stop_date>[a-zA-Z]*)?")
df=new_df.text.str.extract(pat)
需要这样的输出:
String_Name = Sample String(just a / string)
Start_Date = 04/04/2014
Stop_Date = ongoing
答案 0 :(得分:0)
您可以使用
qsort(arr, 2, sizeof(struct student), student_cmp);
请参见regex demo。 Regulex图:
熊猫测试:
r'(?P<String_Name>.*?)\s*(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})\sto\s+(?P<stop_date>.*)'
输出:
df = pd.DataFrame({'text':['Sample String(just a / string) 04/04/2014 to ongoing']})
rx = r'(?P<String_Name>.*?)\s*(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})\sto\s+(?P<stop_date>.*)'
df1 = df['text'].str.extract(rx)