Ich brauche Hilfe, einen regelmäßigen Ausdruck zu machen. Ich habe eine Zeichenfolge, die zur Kompilierungszeit bekannt ist, nennen wir es SpecificString
. Ich habe auch eine andere Zeichenfolge, deren Wert nicht bekannt ist. Nennen wir es zum Beispiel ArbitraryString
. Die Eingabezeichenfolge besteht aus einer SpecificString
, die ArbitraryString
darin an einer beliebigen Position enthält oder an ArbitraryString
angrenzt. Ich möchte ein Regex-Muster, das ArbitraryString
aus der Eingabe-Zeichenfolge für mich später verwendet.Regex - Wie zeichne ich eine beliebige Zeichenkette auf, die irgendwo in einer bekannten Zeichenkette auftaucht?
Beispiele:
- Beispielformat: Eingabezeichenfolge => Wert der erfassten Gruppe
SpecificArbitraryStringString
=>ArbitraryString
// innenSpecHAHAHALOLificString
=>HAHAHALOL
SpecificStringYOLO
=>YOLO
// benachbartSpecificStrisadng
=>sad
itsABea8tifulDaySpecificString
=>itsABea8tifulDay
// auch benachbarteShow to be a heartbreakerpecificString
=>how to be a heartbreaker
SpecificSt this is the last example ring
=>this is the last example
(in der Ausgabe des letzten Beispiel stackoverflow.com weggelassen, um die Räume an beiden aus irgendeinem Grund endet, einfach zu ignorieren, dass und annehmen, dass sie es sind)
ich nur in der Lage war, mit einem regulären Ausdruck, deren Länge linear zu kommen mit der Länge von SpecificString
wächst es sehr schwierig zu halten. Irgendwelche Ideen?
Pseudocode (nicht unbedingt gültig C#):
static string GetArbitraryString(string input)
{
const string specificString = "SpecificString";
var regex = // regex pattern to find
var match = regex.Match(input);
string arbitraryString = match.CapturedGroups[0].Value;
return arbitraryString;
}
Nur regex Antworten akzeptiert werden.
edit: die neue Frage: Gibt es dafür eine elegante Regex-Lösung?
einen besonderen Grund verwenden würde, warum Sie nur Regex bezogene Antworten akzeptieren?Es scheint, als wäre eine Nicht-Regex-Lösung einfacher. – Abion47
@ Abion47 Ich weiß. Aber ich möchte wirklich wirklich wissen, ob es eine elegante Regex-Lösung gibt. Und ich hoffe wirklich, dass dieser Kommentar diese Frage nicht schließt. – foxneSs
Wenn Sie programmgesteuert die Regex generieren, deren Länge linear mit der Länge von 'SpecificString' wächst, wäre es immer noch schwierig zu pflegen? –