Python Regex extractall仅适用于(YYYY),不适用于MMM YYYY

2024-04-26 00:45:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含文本的列(textline)的dataframe df

df['textline'].iloc[0] = 'This is a test with 2018\n'
df['textline'].iloc[1] = 'This is a test with Jan 2018\n'
df['textline'].iloc[2] = 'This is a test with Feb 2018\n'

我想使用Regex extractall来运行整个df['textline'],但它只会在没有月份名称的情况下提取年份。例如,在上面的示例中,它将从第一行提取2018,而不是从第二行或第三行提取2018,因为它有一月或二月(或其他月份)。你知道吗

df['textline'].str.extractall(r'<<Regex code>>')

Tags: test文本名称dataframedfiswiththis
2条回答

你可以试试这个:

(?<=(\s))\d{4}(?=\D)

匹配项:

这是2018年的测试

这是2018年1月的测试

这是2018年2月的测试

我找到了答案的第一部分:

df['textline'].str.extractall(r'(?<!Jan|Feb) ([1-2][0-9]{3})')

第二部分是如何对整个单词一月,二月使用同一行,这样它将适用于2018年2月和2018年2月

相关问题 更多 >