2016-04-12 5 views
1

Also arbeite ich an einer PHP-Anwendung, wo ein Benutzer in der Lage wäre, Text mit einem Schlüsselwort, z. B. Schlüsselwort "Br" Text "Back Bone poliert" zu speichern. Für diesen speziellen Abschnitt könnte der Benutzer den gesamten in der Datenbank gespeicherten Text bearbeiten. Die Informationen würden innerhalb eines Standard-Textbereich wie folgt dargestellt werden:Preg Match All Text nicht über die ursprüngliche Linie

Textbereich

<textarea rows="15" cols="20" id="inputMulti" wrap="hard" name="inputMulti"> 

Actual Text innerhalb Textbereich

na "No acute cardiopulmonary abnormality. " 

! "Test Bed - Chrome on MacBook Pro. 

1. Font is not Courier. 
2. Compiler is not working. 
3. Buttons are not high-lighting. 
4. Edit and Delete buttons not working in Reports. 
5. multiple codes "entered" are inappropriately separated by commas, that are carried over from box 1. 
6. On Show list page, instead of view, we can just simplify and go straight to edit. 
7. Once you Delete a code from the Code View page, you get an Page Not Found error. 
8. MRI Code Typer is not linked to Home; and actually, Home doesn't need to be there, the MRI Code Typer 2 would be fine. 
9. Box 2 doesn't lengthen as expected; once text field is expanded, "only" a part of it is seen, until additional typing is performed, only then does Box 2 expand properly." 

0c "Comparison: unavailable . 

FINDINGS: 

$$$L,PL,H,B,f0$ 

IMPRESSION: 
$na$ 
$$" 

L """""There is no discernible mass or lobar pneumonia. " 

f0 "No displaced fracture or acute osseous deformity is seen. " 

Der Schlüssel ist vor dem \ t“und dem Text für den jeweiligen Schlüssel ist innerhalb der jeweiligen "".

Nun was ich versuche zu tun ist alles zwischen den jeweiligen "" zu ziehen. Das delima ist, dass ich nicht durch "beca explodieren kann Verwenden Sie den Text innerhalb des "kann enthalten", der natürlich Probleme verursachen würde.

Ich habe es geschafft, einen Ausdruck preg_match_all wie folgt zu erstellen.

preg_match_all("/[\t][\"^\a](...*)[\"$\z\n\r]/", $input_lines, $output_array); 

Ausgabe von Preg Spiel Alle

array(
0=> "No acute cardiopulmonary abnormality. " 
1=> "Test Bed - Chrome on MacBook Pro. 
2=> "Comparison: unavailable . 
3=> """""There is no discernible mass or lobar pneumonia. " 
4=> "No displaced fracture or acute osseous deformity is seen. " 
) 

dies nun funktioniert teilweise, da sie den richtigen Text für jede Zeile packt, aber wenn Sie auf die Taste 2 feststellen, es enthält nicht den gesamten Text zwischen das "", wie es nach dem ersten Spiel anhält, obwohl es weitergehen sollte, bis es das Ende des Spiels erreicht, das sich über mehrere Zeilen ausdehnt.

Ich habe versucht, den s-Modifizierer hinzuzufügen, aber das fügt nur alle Übereinstimmungen in einem Array ein, das nicht durch Zeilen unterbrochen ist. Ich habe auch den Modifikator m ausprobiert, und das scheint überhaupt nichts zu ändern.

Ich bin Noob so nackt mit mir.

+0

Um dies in meinem Kopf zu verstehen, sollte die 2 => Comparison ... den ganzen Weg bis zum L-Präfix 3 gehen? –

+1

Die 2 => alles bis einschließen sollte "Vergleich:. Nicht verfügbar FESTSTELLUNGEN: $$$ L, PL, H, B, f0 $ IMPRESSION: na $ $ $$" – CoderPoet

+0

Können Sie das bestätigen wörtliche Zitate (in zitierten Stellen) sind mit einem anderen Zitat (wie "" "" "Es gibt keine wahrnehmbare Masse oder Lobärpneumonie." "Das gibt" "" Es gibt keine wahrnehmbare Masse oder Lobärpneumonie. ")? –

Antwort

2

Nach mehreren Tests denke ich, dass ich es bekommen habe. Versuchen Sie, diese Muster:

preg_match_all("/\t\"([^\t]*)\"/", $input_lines, $output_array); 

Das Muster alles außer einer Lasche übereinstimmen gemacht wird (das ist die Trennlinie zwischen dem Schlüsselwort und dem Text). Dies schließt die Zeilenumbrüche im Match ein, bei mehrzeiligem Text. Dafür denke ich, dass der Text keine Tabs in der Mitte haben wird, d.h. die Tabs werden nur verwendet, um das Schlüsselwort von seinem entsprechenden Text zu trennen.

+0

Vielen Dank. Ich schlug nur mit dem Kopf gegen die Wand. Ich werde die Möglichkeit deaktivieren, die Tab-Taste zu verwenden, um sicher zu sein, aber danke nochmal. – CoderPoet

+0

Was ist der Fehler? –

+0

Nur den vorherigen Kommentar gelöscht es war mein Fehler, nochmals vielen Dank. – CoderPoet