Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
diff-I(diff——忽略匹配行)regex可以改进吗?_Regex_Diff - Fatal编程技术网

diff-I(diff——忽略匹配行)regex可以改进吗?

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的--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\|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$
的东西几乎肯定都是日期。