Rumah  >  Soal Jawab  >  teks badan

Simpan tag html tertentu apabila membelah rentetan

Saya perlu membelah rentetan dengan bilangan tag tertentu (<li>, <lu> ...). Saya tahu ungkapan biasa

pattern = <li>|<ul>|<ol>|<li>|<dl>|<dt>|<dd>|<h1>|<h2>| <h3>|<h4>|<h5>|<h6>re.split

Pada asasnya ia menyelesaikan kerja

test_string = '<p> Some text some text some text. </p> <p> Another text another text </p>. <li> some list </li>. <ul> another list </ul>'
res = re.search(test_string, pattern) 
-> `['<p> Some text some text some text. </p> <p> Another text another text </p>. ', ' some list </li>. ', ' another list </ul>']`

Tetapi saya ingin menangkap teg pembuka dan penutup dan menyimpan teg dalam teks berpecah. Sesuatu yang serupa

['<p> Some text some text some text. </p> <p> Another text another text </p>. ', '<li> some list </li>. ', '<ul>another list </ul>']`

P粉841870942P粉841870942183 hari yang lalu311

membalas semua(1)saya akan balas

  • P粉787806024

    P粉7878060242024-04-01 10:26:40

    Untuk menjawab soalan khusus anda:

    <(p|li|ul|ol|dl|h1|h2|h3|h4|h5|h6)>[^<]*

    Dan padankan bukannya berpecah.

    1 merujuk kepada apa yang ditangkap dalam tag pembukaan.

    Serupa dengan:

    for match in re.finditer(r"<(p|li|ul|ol|dl|h1|h2|h3|h4|h5|h6)>[^<]*", subject, re.DOTALL):

    Walau bagaimanapun, dalam kebanyakan kes sebenar ini tidak mencukupi untuk mengendalikan HTML dan anda harus mempertimbangkan penghurai DOM.

    balas
    0
  • Batalbalas