我正在编写一个脚本来解析文本文件(准确地说是 csv),我想根据每行内容从文件中选择行。有许多字符串条件要检查,所以我推测 regexp 是要走的路,但我还需要根据模算术中的条件检查一行开头的一个数字,到目前为止它是n%4==k
and n%2==k
。然而,似乎只有临时解决方案。n%2==k
很简单,但要检查n%4==2
我必须设计这样的东西:
r'((^\d*[24680]|^)[26]|^\d*[13579][048])[\s;,].*' # more (unrelated) conditions follow
我的问题是:
- 有没有办法简化上面的正则表达式?它有什么明显的问题吗?
- 如果我想将脚本推广到其他模条件(例如
n%3==k
或n%7==k
),是否有一种可行的方法来使用正则表达式,或者我最好从字符串中提取一个数字并编写额外的代码来检查这些条件。