Do nie próbuj rozwiązać wszystkiego za pomocą wyrażeń regularnych.
Chociaż można zrobić kilka części - takich jak podmioty zastępujących The znacznie lepsze podejście jest właściwie używać (wytrzymałe) HTML parser.
Zobacz to pytanie: RegEx match open tags except XHTML self-contained tags , dlaczego nie jest to dobry pomysł na użycie szwajcarskiej piły łańcuchowej regexp. Poważnie, przeczytaj to pytanie i najwyższą odpowiedź, jest to ekspozycja przepełnienia stosu!
Chuck Norris może parse HTML z regex.
Złą wiadomością jest to: istnieje więcej niż jeden sposób do kodowania znaków.
https://en.wikipedia.org/wiki/Character_encodings_in_HTML
Na przykład znak „X” może być reprezentowana jako λ
, λ
lub λ
A jeśli jesteś naprawdę pecha, niektóre strona internetowa opiera się na niektórych przeglądarkach zdolności do zgadnij znaczenie znaków. ™
na przykład nie jest prawidłowy, ale wiele przeglądarek interpretuje go jako ™
.
Oczywiście dobrze jest zostawić to w dedykowanej bibliotece zamiast próbować samodzielnie zhakować niestandardowe wyrażenie regularne.
Więc gorąco polecam:
- RSS ciąg do solidnego HTML parser
- Get analizowana (iw pełni dekodowany) ciąg powrotem
Czy Twój zawierają znaczniki HTML? –
Tak, ale wyodrębnione pole nie zawiera znaczników – user
Na początek, [używając regex do parsowania HTML] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self- Zawarte tagi) jest całkowicie błędna na pierwszym miejscu. Po prostu użyj [parsera HTML] (http://stackoverflow.com/questions/3152138/what-are-the-pros-and-cons-of-the-leading-java-html-parsers) takiego jak Jsoup. Trochę przyzwoity od razu by już dla Ciebie unescape HTML. – BalusC