Ich versuche, eine Regex mit einer Zeichenfolge so lange wie möglich übereinstimmen. Dies ist die Zeichenfolge in aussehen:Verwenden Sie Regex, um nur sequenzielle (aber nicht unbedingt konsekutive) Übereinstimmungen zu finden
"xxaxxbxxbxbxxbxxbxxbxxdxx"
Das Muster ist zum Spiel:
"bcda"
Das Muster zu interpretieren ist wie folgt:
b
: Es gibt mehrere von ihnen in der Zeichenfolge. Der erste sollte übereinstimmen.c
: Es gibt keinen in der Zeichenfolge, also wird nichts zurückgegeben.d
: Es ist nur eine am Ende der Zeichenfolge. Es sollte zurückgegeben werden.a
: Es ist eine am Anfang der Zeichenfolge. Dab
,c
undd
zuerst gesucht wurden und Ergebnisse zurückgegeben werden, wirda
nicht zurückgegeben.
Die erwartete Rendite ist:
"bd"
Es dass Regex sein kann, ist nicht der richtige Weg, dies zu tun, aber ich würde gerne mit einem um Hilfe bitten. Die grundlegende Frage lautet: Kann ich regex verwenden, um generisch eine Teilzeichenkette zu finden, die so viel wie möglich einer geordneten, aber nicht notwendigerweise konsekutiven Folge von möglichen Zeichen darstellt? Wenn das so ist, wie?
Was ist Ihre Frage? – sawa
Hier ist ein Beispiel für eine Regex, die Sie verwenden können: http://rubular.com/r/tMw2SA0Rtt – jaytea
OK, es sieht aus wie Sie Ihre Frage geändert .. Regex ist nicht mehr der Weg, um hier zu gehen. Ihre Anforderungen sind ein wenig willkürlich; Es gibt keine Erklärung dafür, warum wir "d" finden, sondern "a" aufgeben. Ich nehme an, weil wir einen Fehler ('c') gefunden haben? Jedenfalls wäre es nicht möglich, ein verallgemeinertes Muster einfach ohne irgendeine tatsächliche Programmierung in einen regulären Ausdruck zu überführen. – jaytea