Natürlich können Sie die |
(Rohr?) zu repräsentieren OR
aber gibt es eine Möglichkeit, die AND
auch?
Konkret möchte ich Textabschnitte abgleichen, die ALLE einen bestimmten Satz enthalten, aber in keiner bestimmten Reihenfolge.
Natürlich können Sie die |
(Rohr?) zu repräsentieren OR
aber gibt es eine Möglichkeit, die AND
auch?
Konkret möchte ich Textabschnitte abgleichen, die ALLE einen bestimmten Satz enthalten, aber in keiner bestimmten Reihenfolge.
Es ist technisch nicht unmöglich, aber es lohnt sich nicht, es umzusetzen. Ich weiß allerdings nicht, warum jemand es heruntergestuft hat...
Zusätzlich zu der akzeptierten Antwort
Ich werde Ihnen einige praktische Beispiele geben, die einigen von Ihnen mehr Klarheit verschaffen werden. Nehmen wir zum Beispiel an, wir haben diese drei Textzeilen:
[12/Oct/2015:00:37:29 +0200] // only this + will get selected
[12/Oct/2015:00:37:x9 +0200]
[12/Oct/2015:00:37:29 +020x]
Siehe Demo hier DEMO
Was wir hier tun wollen, ist das +-Zeichen auszuwählen, aber nur, wenn es nach zwei Zahlen mit einem Leerzeichen steht und wenn es vor vier Zahlen steht. Das sind die einzigen Beschränkungen. Wir würden diesen regulären Ausdruck verwenden, um dies zu erreichen:
'~(?<=\d{2} )\+(?=\d{4})~g'
Beachten Sie, dass Sie unterschiedliche Ergebnisse erhalten, wenn Sie den Ausdruck trennen.
Oder vielleicht wollen Sie einen Text zwischen den Tags auswählen... aber nicht die Tags! Dann könnten Sie verwenden:
'~(?<=<p>).*?(?=<\/p>)~g'
für diesen Text:
<p>Hello !</p> <p>I wont select tags! Only text with in</p>
Siehe Demo hier DEMO
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
2 Stimmen
Meinen Sie damit, dass Sie Phrasen in einem Text finden wollen, wobei jede dieser Phrasen eine gültige Permutation der Wörter in einer gegebenen Phrase ist?
3 Stimmen
Ich stelle das hier rein, weil drei oder vier Antworten es ignorieren. Lookahead stimmt nicht für jede Klausel mit der gleichen Länge überein, es sei denn, sie enden auf $. Ein Lookahead könnte auf vier Zeichen passen, ein anderer auf 6. Zum Beispiel wird (?=a*)(?=aab) mit aabaaaaba übereinstimmen.
4 Stimmen
Versuchen Sie, nur das "Leerzeichen" für den Operator "AND" zu verwenden.
0 Stimmen
1.
I'd like to match paragraphs of text
. 2. Enthält außer Betrieb Text. Nummer 1 ist offen für Interpretationen. Für Nummer 2 gibt es mehrere Möglichkeiten. Weg 1:(?:(?:(?(1)(?!))\b(phrase1)\b.*?|(?(2)(?!))\b(phrase2)\b.*?)){2}
, Weg 2:(?=.*\bphrase1\b)(?=.*\bphrase2\b)
wobei die Übereinstimmung des Absatzes in diesem Fall unbestimmt ist, bis die Definition des Absatzes formalisiert ist.