当前NTUSER.DAT文件的正则表达式

时间:2016-04-22 03:47:01

标签: regex pcre

我正在尝试提出一个正则表达式(PCRE),它在循环浏览文件列表时找到当前的Windows NTUSER.DAT文件(有效的NTUSER.DAT是Windows正确使用的路径)。

我正在尝试排除已由用户复制并放置在其他位置(例如桌面上)的任何NTUSER.DAT文件。在以下示例数据中,前4个结果有效,接下来的3个结果无效:

\Users\John Thomas Hamilton\ntuser.dat
\Users\Default\NTUSER.DAT
\Users\Mary Thomas\NTUSER.DAT   
\Users\UpdatusUser\NTUSER.DAT
\Users\John Thomas Hamilton\Desktop\My Stuff\Windows\Users\Default\NTUSER.DAT
\Users\John Thomas Hamilton\Desktop\My Stuff\Windows\Users\Student\NTUSER.DAT
\Users\John Thomas Hamilton\Desktop\My Stuff\My stuff to sort\Tech Support Fix it\NTUSER.DAT

目前我拥有的最好/最简单的正则表达式是:

\\USERS\\[A-Z0-9]+\\NTUSER.DAT$

但当然除了用户名中可能存在的字母和数字之外,还有很多有效的Windows文件名字符。

我想我需要搜索新文件夹的第一次出现" \"如果它之后没有NTUSER.DAT,请拒绝它。我没有运气这样做,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

假设你有一个有效的文件列表,这将有效:

^\\Users\\[^\\]+?\\NTUSER.DAT$

请务必忽略大小写。

秘密是使用[^\\]+?代替.+?,以便您只匹配一个文件夹长度。