Regex, um nur zu passen, wenn der Zeilenanfang nichts ist?

1

Ich habe einige Zeilen, die ich abgleichen möchte, und einige Zeilen, die ich vom Abgleichen in einer Datei ausschließen möchte.

Ich würde gerne nicht mithalten remote access</a> (main card)und würde gerne mithaltenanything else</a> (main card)

Ich bin nicht ganz sicher, wie ich es sagen soll: "Wenn es das hat, passt es nicht!"

Ich verwende jetzt erhabenen Text 2, kann aber zu vim oder ähnlichem wechseln, wenn es einfacher ist.

Vielen Dank!

rauben
quelle

Antworten:

2

Ich würde eine Lookahead-Behauptung verwenden :

^(?!remote access)[^<]*</a> \(main card\)
daxlerod
quelle
Das funktionierte aus irgendeinem Grund nicht für mich, aber dann wurde mir klar, dass es im erhabenen Text auf "nur Auswahl" gesetzt war. Das bringt mich zu einem guten Start beim Reparieren einiger Dateien!
Rob
AAAAND Ich habe alles auf einmal bekommen, wo es sein musste! Dies war eine große Starthilfe für das, was ich brauchte!
Rob
2

In Vim können Sie das \@<!Atom mit dem regulären Ausdruck verwenden, um zu bestätigen, dass das Atom, bevor es nicht übereinstimmt. In Ihrem Beispiel wäre das:

/\%(remote access\)\@<!<\/a> (main card)
Ingo Karkat
quelle