多くのオプションがあります-たとえば、すべてのDATAをキャプチャし、後でテキストDATAの前にある要素「/」の数を確認できます(たとえば、最初のグループ)。より長い文字列などを確認できます-コードを使用してシミュレートして再利用できる、まさにあなたが要求したもの:
string type_1 = "" +
"root/DATA/some/file.txt" + "\n" +
"root/DATA/another/file.txt" + "\n" +
"root/DATA/yet/another/file.exe" + "\n" +
"root/site/some/other/folder/before/DATA/file.xml" + "\n" +
"root/site/some/other/folder/DATA/file2.xml";
Console.WriteLine ("Start TEXT:");
Console.WriteLine (type_1);
Console.WriteLine ("Result TEXT:");
MatchCollection mat = Regex.Matches (type_1, "^[^/]*/DATA.*?$", RegexOptions.Compiled|RegexOptions.Multiline);
Console.WriteLine (mat.Count);
foreach (Match m in mat) {
Console.WriteLine (m.ToString ());
}
その作業の結果は次のとおりです。
Start TEXT:
root/DATA/some/file.txt
root/DATA/another/file.txt
root/DATA/yet/another/file.exe
root/site/some/other/folder/before/DATA/file.xml
root/site/some/other/folder/DATA/file2.xml
Result TEXT:
3
root/DATA/some/file.txt
root/DATA/another/file.txt
root/DATA/yet/another/file.exe
最初の 'DATA' の前に '/' が存在しないと仮定することで機能します。