Hier,
Pattern-Klasse:
Das gibt erst mal nur wieder ob das Muster darin existiert.
Um exemplarisch Datum zu entfernen, einfach den Index i abgreifen, wo matcher == count und davon von i bis i + Count den String abschneiden (Truncate) ...
Aufruf:
Das ist jetzt am Beispiel eines Pattern... kannst beliebig weitere hinzufügen.
Exemplarisch:
Liebe Grüße
_
Pattern-Klasse:
C#-Quellcode
- public class Pattern
- {
- public Dictionary<int, char[]> PatternDictionary = new Dictionary<int, char[]>();
- public void Add(int index, params char[] input)
- {
- PatternDictionary.Add(index, input);
- }
- public bool IsMatching(string data)
- {
- char[] _array = data.ToCharArray();
- int matches = 0;
- for (int i = 0; i < _array.Length; i++)
- {
- int offset = i;
- foreach (var pattern in PatternDictionary)
- {
- int index = pattern.Key + offset;
- char[] toCheckAgainst = pattern.Value;
- if (index >= _array.Length)
- continue;
- for (int j = 0; j < toCheckAgainst.Length; j++)
- {
- if (toCheckAgainst[j] == _array[index])
- {
- matches++;
- break;
- }
- }
- }
- if (matches == PatternDictionary.Count)
- return true;
- matches = 0;
- }
- return false;
- }
- }
Das gibt erst mal nur wieder ob das Muster darin existiert.
Um exemplarisch Datum zu entfernen, einfach den Index i abgreifen, wo matcher == count und davon von i bis i + Count den String abschneiden (Truncate) ...
Aufruf:
C#-Quellcode
- Pattern p1 = new Pattern();
- p1.Add(0, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 2
- p1.Add(1, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 0
- p1.Add(2, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 1
- p1.Add(3, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 7
- p1.Add(4, '-'); // -
- p1.Add(5, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 0
- p1.Add(6, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 8
- p1.Add(7, '-'); // -
- p1.Add(8, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 2
- p1.Add(9, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 4
- Console.WriteLine("Does 249-Zertifikat4_[...]-Ichtershausen_42_2017-08-24.pdf contain a date?: " + (p1.IsMatching("249-Zertifikat4_Hoermann-Ichtershausen_42_2017-08-24.pdf") ? "Yes" : "No"));
- Console.Read();
Das ist jetzt am Beispiel eines Pattern... kannst beliebig weitere hinzufügen.
Exemplarisch:
C#-Quellcode
- class Program
- {
- static void Main(string[] args)
- {
- Pattern p1 = new Pattern();
- p1.Add(0, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 2
- p1.Add(1, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 0
- p1.Add(2, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 1
- p1.Add(3, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 7
- p1.Add(4, '-'); // -
- p1.Add(5, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 0
- p1.Add(6, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 8
- p1.Add(7, '-'); // -
- p1.Add(8, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 2
- p1.Add(9, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 4
- Console.WriteLine("Does 249-Zertifikat4_[...]-Ichtershausen_42_2017-08-24.pdf contain a date?: " + (p1.IsMatching("249-Zertifikat4_Hoermann-Ichtershausen_42_2017-08-24.pdf") ? "Yes" : "No"));
- Pattern p2 = new Pattern();
- p2.Add(0, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- p2.Add(1, '.');
- p2.Add(2, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- p2.Add(3, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- p2.Add(4, '-');
- p2.Add(5, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- p2.Add(6, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- p2.Add(7, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- p2.Add(8, '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
- // H_16_S-1_Z-6.20-2025_A.PDF
- Console.WriteLine("Does H_16_S-1_Z-6.20-2025_A.PDF contain a date?: " + (p2.IsMatching("H_16_S-1_Z-6.20-2025_A.PDF") ? "Yes" : "No"));
- Console.Read();
- }
- }
Liebe Grüße
_
Und Gott alleine weiß alles am allerbesten und besser.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „φConst“ ()