können Sie beide \d+
mit (?:\d+|myword)
ersetzen. Werfen Sie einen Blick auf den Alternation with The Vertical Bar or Pipe Symbol:
Wenn Sie den wörtlichen Text suchen mögen cat
oder dog
, trennen beiden Optionen mit einem vertikalen Balken oder Pipe-Symbol: cat|dog
. Wenn Sie weitere Optionen wünschen, erweitern Sie einfach die Liste: cat|dog|mouse|fish
.
die Regex-Engine zu sagen, dass wir nur die \d+
Ziffern und myword
, wir schließen Sie sie nur für die Zwecke hier Gruppierung verwendet innerhalb eines non-capturing group wollen abzuwechseln.
Siehe
^\s*((?:\d+|myword)(\s*,\s*(?:\d+|myword))*)?\s*$
die regex demo See.
MyWoRd
Fall Passend, insensitively RegexOptions.IgnoreCase
Flag verwenden, wenn das Objekt Regex
kompilieren oder das gesamte Muster prepend mit (?i)
inline Modifikator (d.h. (?i)^\s*((?:\d+|myword)(\s*,\s*(?:\d+|myword))*)?\s*$
). Hier
ist die C# demo:
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var inputs = new string[] { "1, 2, 3", "1, myword, 3", "1, MyWord, 3" };
var pat = @"^\s*((?:\d+|myword)(\s*,\s*(?:\d+|myword))*)?\s*$";
foreach (var s in inputs)
Console.WriteLine("{0} matched: {1}", s, Regex.IsMatch(s, pat, RegexOptions.IgnoreCase));
}
}
Ersetzen Sie beide '\ d +' 'mit (?: \ D + | myWord)'. Siehe ['^ \ s * ((?: \ D + | myword) (\ s *, \ s * (?: \ D + | mein Wort)) *)? \ S * $'] (http://regexstorm.net/tester? p =% 5e% 5cs * ((% 3f% 3a% 5cd% 2b% 7cmyword) (% 5cs *% 2c% 5cs * (% 3f% 3a% 5cd% 2b% 7cmyword)) *)% 3f% 5cs *% 24 & i = 1% 2c + 2% 2c + 3% 0d% 0a1% 2c + mein Wort% 2c + 3% 0d% 0amyword% 2c + 2% 2c + 3% 0d% 0a1% 2c + mein Wort% 2c + 3 % 2c + myword% 0d% 0a & o = m). –
@ WiktorStribiżew Großartig! Danke vielmals! – user3132547
https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx und schauen Sie sich die Option count an. 0, könnte Ihre Zählung sein, da es optional ist. Nicht jedes Problem ist eine Regex.Wenn du ein wenig Code schreibst, kann das deine Absicht deutlicher machen als der, der hinter dir her kommt und es pflegen muss. –