2017-03-18 2 views
1

Ich brauche einen regulären Ausdruck zu finden, die mit dem folgenden Dummy-Eingang arbeiten:Suche alle Zeilen in einer Datei, die zwei Strings auf der gleichen Linie haben

Lorem ipsum dolor sit -V amet, consectetuer adipiscing elit. 
Aenean commodo ligula Charge Tip eget dolor. Aenean massa. 
Cum sociis natoque penatibus et magnis dis parturient montes. 
Nascetur ridiculus Charge Tip mus. Donec quam felis,-Vultricies nec. 
Pellentesque eu, pretium quis, sem. Nulla consequat massa. 
Quis enim. DonecCharge Tippede justo, fringilla vel, aliquet nec.-V 
Vulputate eget, arcu. In enim justo, rhoncus ut. 

Und produzieren folgendes Ergebnis:

Charge Tip -V 
Charge Tip -V 

Einige Anmerkungen:

  • Lade Tipp ist immer vor -V
  • Der Ladetipp kann an andere Daten auf der linken und rechten Seite angehängt werden. Regular expression to find two strings anywhere in input

    ich konnte keine Lösung erhalten, wie die Lösungen zu arbeiten:

  • -V können auf andere Daten auf der linken und rechten

Ich habe versucht, viele Links hier schon, wie angebracht werden funktioniert nicht auf der RegExr-Site, die ich zum Testen der Regex verwende.

Das Endergebnis, das ich brauche, ist für die Regex in Agent Ransack 2014 arbeiten, da ich Log-Dateien auf einem Windows XP-Computer suchen müssen.

+0

Ist das, was Sie https://regex101.com/r/OjdUd2/1 wollen? Die Matches befinden sich in den Capture-Gruppen 1 und 2. – abhishekkannojia

+0

Verwenden Sie '(? -s) Charge Tip (? =. * - V)' – revo

Antwort

3

Agent Ransack Regex-Engine ist Perl kompatibel. So können Sie ganz einfach suchen:

(?-s)Charge Tip(?=.*-V)|(?!\A)\G.*\K-V 

Live demo

+0

Vielen Dank. Wenn es möglich ist, ändern Sie es bitte leicht, um das -V hervorzuheben, da es viele Zeilen mit der Aufladung Spitze ohne -V gibt und Ihre Lösung nur wie Aufladungsspitze aussieht. – wickyd

+0

Bitte überprüfen Sie das Update. – revo

+0

Gern geschehen. Sie können diese Antwort auch hochstimmen, wenn es Ihnen hilft. – revo

0

Versuchen Sie, die folgende Regex, können Sie es here live sehen:

^[\w \,\.]*(Charge Tip)[\w \,\.]*(\-V)[\w \,\.]*$ 

Wie hier zu sehen:

Regex101

+0

Leider gibt dies keine Übereinstimmungen auf regex101 oder regexr. – wickyd

+0

@wickyd kannst du bitte erklären, wo es nicht passt? Sehen Sie meine Bearbeitung für das, was ich auf Regex101 sehe. – JosephGarrone

+0

Ich weiß nicht, wo ich falsch liege, aber ich sehe dies https://snag.gy/roi4vh.jpg – wickyd

Verwandte Themen