首页 文章

Python Regex仅为(YYYY)提取,但不是MMM YYYY

提问于
浏览
-2

我有一个数据框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']但它只会在没有前面的Month名称时提取年份 . 例如,在上面的示例中,它将从第一行提取2018,但不从第二行或第三行提取2018,因为它具有Jan或Feb(或其他月份) .

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

2 回答

  • 0

    我想出了答案的第一部分:

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

    第二部分是如何在1月,2月的整个单词中使用相同的行,以便它将适用于2018年2月和2018年2月

  • -1

    你可以尝试这个:

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

    火柴:

    这是 2018 \ n的测试

    这是Jan 2018 \ n的测试

    这是2月 2018 \ n的测试

相关问题