我的数据框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'
我想使用正则表达式extractall来遍历整个df ['textline'],但它只会在没有前面的月份名称时提取年份。例如,在上面的示例中,它将从第一行提取2018,但不会从第二或第三行提取2018,因为它具有1月或2月(或其他月份)。
df['textline'].str.extractall(r'<<Regex code>>')
答案 0 :(得分:0)
我想出了答案的第一部分:
df['textline'].str.extractall(r'(?<!Jan|Feb) ([1-2][0-9]{3})')
第二部分是如何对一月,二月的整个单词使用同一行,以便使其在2018年2月和2018年2月都可以使用
答案 1 :(得分:-1)
您可以尝试以下方法吗:
(?<=(\s))\d{4}(?=\D)
比赛:
这是 2018 \ n
的测试这是对Jan 2018 \ n
的测试这是2月 2018 \ n
的测试