首页 > 解决方案 > 如何在 UltraEdit 中对日期字段应用过滤器

问题描述

我正在尝试使用 UltraEdit 中的过滤器选项。我有一个简单的 CSV 文件。它有 3 列。最后一列有日期。我需要应用过滤器,以便只看到日期早于 2019 年 5 月 1 日的那些行。

24.59,000000024.13,06/01/2019
18.45,000000000.00,07/01/2019
18.45,000000018.36,07/01/2019
94.08,000000000.00,02/01/2019
19.83,000000000.00,02/01/2019
77.35,000000000.00,02/01/2019
51.22,000000000.00,02/01/2019
14.02,000000000.00,02/01/2019
70.21,000000000.00,02/01/2019
25.24,000000000.00,02/01/2019
17.35,000000000.00,02/01/2019

有没有办法在 UltraEdit 中以列模式执行此操作?

标签: datefilterultraedit

解决方案


这可以通过将插入符号移动到文件顶部Ctrl+Home并打开常规查找窗口来实现,例如使用Alt+F3(默认键分配)和

  • 输入为搜索字符串(?:19\d\d|200[0-9]|201[0-8]|0[1-4]/01/2019)$
  • 为选项In选择当前文件
  • 如果不可见,请单击齿轮按钮以显示高级查找选项,
  • 检查选项正则表达式并选择Perl
  • 检查选项过滤线并选择显示
  • 检查选项Close after find
  • 取消选中所有其他检查男孩选项,
  • 单击按钮Next运行查找并隐藏与 Perl 正则表达式搜索字符串匹配的所有行。

Perl 正则表达式搜索字符串匹配1900在行尾找到的年份1999 年份日期,以2000进行正匹配。2009 20102018 01/01/201904/01/2019

好吧,不清楚日期格式是DD/MM/YYYY(英国)还是MM/DD/YYYY(美国)。因此,根据日期格式以及早于 05/01/2019的含义,行隐藏可能是正确的或错误的。我假设DD/MM/YYYY今天的格式是2019-05-05(国际日期格式 YYYY-MM-DD),因此06/01/2019将来的日期是MM/DD/YYYY.

也可以通过使用 Perl 正则表达式搜索

(?:0[5-9]/01/2019|[1-3]\d/\d\d/2019|\d\d/0[2-9]/2019|\d\d/1[0-2]/2019)$

将日期匹配05/01/201909/01/2019 任何日期的第一个数字为1年份32019 任何具有月份0209年份的日期2019 10任何具有月份至12年份的日期2019在行尾使用隐藏而不是显示作为过滤器行的过滤器选项。


推荐阅读