Zum Beispiel:
Ich möchte ersetzen iOS
Wörter an iOS 7
in einer HTML-Zeichenfolge, jedoch nur im Haupttext, mit a <p>
Tag (außer in anderen Fällen).
Ich möchte nur das ersetzen:
<p>Say hello to iOS that is contained in the body text</p>
<p>Say hello to iOS 7 that is contained in the body text</p>
Aber will nicht diese ersetzen:
<p>Say hello to <a href="#" alt="iOS 7 in alt text">this link.</a>
<p>Say hello to <img src="/images/iOS 7.jpg" /> this image.
// And so on...
Ist es überhaupt mit Regex möglich?
Antworten:
1 für die Antwort № 1Sicher, Sie könnten einen regulären Ausdruck verwenden, der einen negativen Lookhind verwendet.
(? <! ") iOs 7
was im Grunde übereinstimmt, außer denen mit "vor ..."
... aber eigentlich sollten Sie wirklich eine Art HTML-Parser wie BeautifulSoup in Betracht ziehen, der all das trivial macht.
Siehe hier:
RegEx passt offene Tags an, mit Ausnahme von XHTML-eigenen Tags