我需要一个正则表达式实用程序,它将搜索指定的目录并仅返回每个文件的第一行,或者返回第一行的特殊13位数字。
在c#或vb.net或vb6中使用正则表达式有一种简单有效的方法吗? 我试图搜索的代码是:000999D5,但我想要返回的13位数字只在第一行。
谢谢, 马克
答案 0 :(得分:2)
我无法想象一个现成的API请求来执行此操作,因此您必须自己编写代码。这里没什么特别的。
public class ScanDirectory { public void WalkDirectory(string directory) { WalkDirectory(new DirectoryInfo(directory)); } private void WalkDirectory(DirectoryInfo directory) { // Scan all files in the current path foreach (FileInfo file in directory.GetFiles()) { // Do something with each file. } DirectoryInfo [] subDirectories = directory.GetDirectories(); // Scan the directories in the current directory and call this method // again to go one level into the directory tree foreach (DirectoryInfo subDirectory in subDirectories) { WalkDirectory(subDirectory); } } }
(代码来自此处:http://www.codeproject.com/KB/cs/ScanDirectory.aspx)
在每个文件中,您都必须阅读第一行。您可以使用
执行此操作// Read the file and display it line by line. System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt"); String firstLine = file.ReadLine(); if (null != firstLine) { // do regexp comparison }
正则表达式比较应如下所示:
string input = "0123456789132"; // Here we call Regex.Match. Match match = Regex.Match(input, @"([0-9]{13})", RegexOptions.IgnoreCase); // Here we check the Match instance. if (match.Success) { // DO your stuff }
您可能需要更改正则表达式以符合您的确切要求,因为目前还不是很清楚。