Ich muss die Zahl 5 in den Klammern in diesem HTML-Code extrahieren:
<td class="th-clr-cel th-clr-td th-clr-pad th-clr-cel-dis" style="width:226px; text-align:left; ">
<span class="th-tx th-tx-value th-tx-nowrap" style="width:100%; " title="Social Insurance Number (SIN)" id="C29_W120_V121_builidnumber_table[5].type_text" f2="C;40">
Social Insurance Number (SIN)
</span>
Dies ist nur ein Auszug des gesamten HTML-Codes und es gibt viel mehr tatsächlichen Code vor und nach diesem Beispiel. Aber eines ist sicher, das Wort „Versicherung“ kommt nur in diesem Beispiel vor.
Ich habe es geschafft, alles zwischen den 2 Instanzen von "Sozialversicherungsnummer" mit dieser Regex abzugleichen:
((?<=Social Insurance Number)(.*)(?=Social Insurance Number))
Jetzt muss ich das kombinieren und die Zahl 5 in den eckigen Klammern extrahieren.
Bitte beachten Sie: Der Inhalt der Klammer kann aus mehreren Zeichen bestehen (zB: 15), es handelt sich jedoch immer um eine Ziffer.
Dankeschön
BEARBEITEN: Der Grund, warum ich Regex zum Parsen von HTML verwenden möchte, ist, dass dies Teil eines JMeter-Skripts ist, um Massenleistungstests auf einem System mit Hunderten von gleichzeitigen Benutzern auszuführen. Performance ist hier ein wichtiger Faktor und ein XML-Parser verbraucht mehr Ressourcen als Regex.
Versuche dies:
Insurance.*\[(\d+)\]
Oder wenn Sie es zwischen den 2x "Versicherungs"-Wörtern abgleichen möchten
Insurance.*\[(\d+)\][\s\S]+?Insurance
Woher
Insurance
- Übereinstimmung mit dem Anfangswort "Versicherung".*
- Übereinstimmung mit jedem Charakter\[
- Passen Sie die Öffnungsklammer an(\d+)
- Erfassen Sie den Zahlenwert in Klammern\]
- Passen Sie die schließende Klammer an[\s\S]+?
- Passen Sie jedes Zeichen (einschließlich Zeilenumbrüche) auf nicht gierige Weise an, damit es sich nicht über mehrere "Versicherungs" -Wörter erstrecktInsurance
- Übereinstimmung mit dem Endwort "Versicherung"Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen