Ich habe diesen Text:Regex Match Improvement
<td class="devices-user-name">devicename</td>
<td>192.168.133.221</td>
<td>Storage Sync</td>
<td>10.3.3.335</td>
<td>Active</td>
<td>7/26/2016 8:39PM</td>
<td class="devices-details-button"><a class="btn btn-mini" href="#settings/devices/1/239a9cd0-d6c9-4e7d-9918-0cd686a57aac">Details</a></td>
Ich möchte die <td class=...> </td>
auch alles zwischen dem <td> </td>
fangen
Was erreicht I ist diese regex:
<td.*>(.*?)<\/td>(\n(.*<td>(.*?)<\/td>))(\n(.*<td>(.*?)<\/td>))(\n(.*<td>(.*?)<\/td>))(\n(.*<td>(.*?)<\/td>))(\n(.*<td>(.*?)<\/td>))(\n(.*<td.*href="(.*?)"))
Danach Ich muss immer noch alle <td>
Übereinstimmungen ausschließen:
$MatchResult = $Matches.GetEnumerator() | ? {$_.Value -notmatch 'td'} | Sort Name
Schließlich erhalte ich diese Ergebnisse:
Name Value
---- -----
1 devicename
4 192.168.133.221
7 Storage Sync
10 10.3.3.335
13 Active
16 7/26/2016 8:39PM
19 #settings/devices/1/239a9cd0-d6c9-4e7d-9918-0cd686a57aac
Aber ich bin ruhig sicher, dass es ein besserer Weg, anstatt die Gruppen von duplizieren, ohne Sachen usw. einig andere/bessere Technik zu verwenden, was ich Ich werde glücklich sein zu lernen.
Was ist Ihr Vorschlag?
Siehe http: // Stackoverflow .com/a/11656434/3832970 für eine alternative Methode. –
In Bezug auf das Analysieren von HTML mit RegEx, [lesen Sie das zuerst] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) –