diff-I(diff——忽略匹配行)regex可以改进吗?
我真的很想得到一些关于正则表达式的帮助,我正在尝试将正则表达式输入到diff的--ignorematchinglines选项中 我有两个文本文件,都包含此格式的日期: 文件1:2021年5月20日凌晨1:15 文件2:2003年10月1日下午11:37 我想比较文件,但忽略包含此类日期的行。 我写了一个正则表达式来匹配它,但它看起来很长:diff-I(diff——忽略匹配行)regex可以改进吗?,regex,diff,Regex,Diff,我真的很想得到一些关于正则表达式的帮助,我正在尝试将正则表达式输入到diff的--ignorematchinglines选项中 我有两个文本文件,都包含此格式的日期: 文件1:2021年5月20日凌晨1:15 文件2:2003年10月1日下午11:37 我想比较文件,但忽略包含此类日期的行。 我写了一个正则表达式来匹配它,但它看起来很长: diff -I'^\s*.[[:digit:]]\{1,2\} \(January\|February\|March\|April\|May\|June\|J
diff -I'^\s*.[[:digit:]]\{1,2\} \(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December\) 20[[:digit:]]\{2\}, [[:digit:]]\{1,2\}:[[:digit:]]\{1,2\} [a\|p]m\s*$' file1 file2
然后我缩短了它,牺牲了几个月的准确性:
zdiff -I'^\s*.[0-9]\{1,2\} [ADFJMNOS][^dfjhqwxz]\{2,8\} 20[0-9]\{2\}, [0-9]\{1,2\}:[0-9]\{1,2\} [a\|p]m\s*$' file1 file2
他们俩都干得很好。
但由于这些不是我想忽略的唯一类型的行,并且我正在通过execSync将它们从node.js馈送到diff,所以我想尽量缩短它们
所以我的问题是:
有没有一种更简洁的方法来编写与diff一起工作的正则表达式——忽略匹配行来实现这一点
谢谢你的帮助。我不想费心去精确匹配月份名称,只要
[A-Z][A-Z]+
。任何格式为^number Word number,number:number[ap]m$
的东西几乎肯定都是日期。