Regular expression that filters data

Question:

I am thinking of making a filter with python that allows me to search the information of a file by giving me a regular expression, the search must be "year-month".

I have a file with the following fields

date vehicle license plate number number of people in the accident comments

and a txt file with the following information corresponding to the above fields:

2022-12-01;ABC-101;1;nothing
2022-12-02;ABC-101;1;nothing
2022-12-03;ABC-101;1;nothing
2022-12-04;ABC-102;1;nothing
2021-10-07;ABC-103;1;nothing
2021-10-08;ABC-103;1;nothing
2021-10-09;ABC-104;1;nothing
2021-10-10;ABC-105;1;nothing

Which regular expression allows me to select all the information of that accident by year-month?


for example

  • input: 2022-12
  • output:
2022-12-01;ABC-101;1;nothing
2022-12-02;ABC-101;1;nothing
2022-12-03;ABC-101;1;nothing
2022-12-04;ABC-102;1;nothing

  • input: 10-2021
  • output:
2021-10-07;ABC-103;1;nothing
2021-10-08;ABC-103;1;nothing
2021-10-09;ABC-104;1;nothing
2021-10-10;ABC-105;1;nothing

Asked By: JGC

||

Answers:

I just tested this and this works as a pattern matching.

    import re
    
    s = '2022-12-01;ABC-101;1;nothing'
    
    result = re.match('^d{4}-d{2}', s)

^ matches for the starting position
d matches a digit (or numeric figure)
{n} matches n patterns to the left of it so d{4} matches four digits

Answered By: Cyrus

This identifies months from 01 to 12.

    s = '2022-12-01;ABC-101;1;nothing'
    
    result = re.match('^d{4}-(01|02|03|04|05|06|07|08|09|10|11|12)', s)

The | character acts as a logical or

Answered By: Cyrus
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.