Ihre Frage ist unterspezifiziert. Welche Charaktere verbieten Sie kurz vor und nach =
? Sie erlauben Space Chars (was ist mit anderen Leerzeichen?). Aber erlauben Sie nur Leerzeichen (oder Leerzeichen)?
Zum Beispiel erlauben Sie a=b
übereinstimmen? Wenn ja, dann sind vielleicht Briefe nicht verboten?
Sobald Sie klar angeben, welche Zeichen Sie zulassen und sofort vor und nach =
verbieten, können Sie die Regexp schreiben. Aber da Sie nur die =
in den übereinstimmenden Kontexten "erfassen" wollen, müssen Sie eine regexp Gruppe für die =
verwenden und nur abrufen, was es entspricht, nachdem alles zusammenpasst.
Zum Beispiel [ ]*=[ ]*
entspricht =
möglicherweise von Space Chars umgeben. Aber wenn Sie nur die =
in diesem Kontext erfassen möchten, müssen Sie [ ]*\\(=\\)[ ]*
verwenden und dann (match-string 1)
verwenden, um die =
zu erhalten.
Sie sagen auch nicht, ob Sie Text in einem Puffer oder in einer Zeichenfolge übereinstimmen.
Und Sie sagen nicht, ob Sie dies interaktiv oder von einem Lisp-Programm tun möchten.
Der genaue Code, den Sie benötigen, hängt von diesen Dingen ab. Wenn Sie beispielsweise für die Suche interaktiv sind, müssen Sie Backslashes nicht doppelt verwenden. Wenn eine Zeichenfolge anstelle eines Puffers verwendet wird, müssen Sie die Zeichenfolge als zweites Argument an match-string
übergeben.
Im Allgemeinen ist Ihre Frage unterspezifiziert, und die Antwort beinhaltet die Angabe dieser Dinge - insbesondere, welche Kontexte übereinstimmen (welche Zeichen vor und nach =
zulässig sind) und welche Teile der übereinstimmenden Kontexte Sie möchten (nur die =
oder die =
plus einige der Zeichen vor und nach ihm) abrufen.
In Emacs ist alles möglich. Dies funktioniert nicht für Sie ?: '[^ <> =! ~]? =? [^ =]'. Mit welchem Befehl suchen Sie? – elethan
@elethan Das fängt sogar * mehr * Zeichen als ich will. Ich suche nur das '=' wie gesagt. – rityzmon
Ah ja, ich habe das schon mal gelesen, aber jetzt verstehe ich was du meinst. Es klingt, als ob Sie ein negatives Lookahead oder Lookbehind benötigen, und ich denke, dass diese in Lisp Regexps nicht unterstützt werden. Zumindest erinnere ich mich daran, aber ich werde es mir ansehen, wenn ich wieder auf dem Desktop bin. – elethan