Python — Regex — Как найти строку между двумя наборами строк

Я думаю, что второй параметр должен быть строкой, а ваша переменная imageArr - массивом. Попробуйте вместо этого передать строку

Можете ли вы попытаться создать такую ​​функцию, как

const ArrayLikeImages = ('yourImage1', 'yourImage2', 'yourImage3') => arguments;

, а затем строку

this.socialSharing.shareViaWhatsApp(null, ArrayLikeImages , null);
6
задан Gavin Miller 11 May 2009 в 20:36
поделиться

4 ответа

Не используйте регулярное выражение. Используйте BeautfulSoup , анализатор HTML.

from BeautifulSoup import BeautifulSoup

html = \
"""
<div id=hotlinklist>
  <a href="foo1.com">Foo1</a>
  <div id=hotlink>
    <a href="/">Home</a>
  </div>
  <div id=hotlink>
    <a href="/extract">Extract</a>
  </div>
  <div id=hotlink>
    <a href="/sitemap">Sitemap</a>
  </div>
</div>"""

soup = BeautifulSoup(html)
soup.findAll("div",id="hotlink")[2].a

# <a href="/sitemap">Sitemap</a>
13
ответ дан 8 December 2019 в 04:31
поделиться

Анализировать HTML с помощью регулярных выражений - плохая идея!

Подумайте о следующем фрагменте HTML

<a></a > <!-- legal html, but won't pass your regex -->

<a href="/sitemap">Sitemap<!-- proof that a>b iff ab>1 --></a>

Есть еще много таких примеров. Регулярные выражения хороши для многих вещей, но не для синтаксического анализа HTML.

Вам следует подумать об использовании Beautiful Soup Python-синтаксического анализатора HTML.

В любом случае, специальное решение с использованием регулярного выражения -

import re

data = """
<div id=hotlinklist>
  <a href="foo1.com">Foo1</a>
  <div id=hotlink>
    <a href="/">Home</a>
  </div>
  <div id=hotlink>
    <a href="/extract">Extract</a>
  </div>
  <div id=hotlink>
    <a href="/sitemap">Sitemap</a>
  </div>
</div>
"""

e = re.compile('<a *[^>]*>.*</a *>')

print e.findall(data)

Output :

>>> e.findall(data)
['<a href="foo1.com">Foo1</a>', '<a href="/">Home</a>', '<a href="/extract">Extract</a>', '<a href="/sitemap">Sitemap</a>']
6
ответ дан 8 December 2019 в 04:31
поделиться

Используйте BeautifulSoup или lxml , если вам нужно разобрать HTML.

Кроме того, что вам действительно нужно делать? Найти последнюю ссылку? Нашли третью ссылку? Найти ссылку, указывающую на / sitemap? Непонятно из вашего вопроса. Что вам нужно, чтобы сделать с данными?

Если вам действительно нужно использовать регулярные выражения, посмотрите findall .

1
ответ дан 8 December 2019 в 04:31
поделиться

Чтобы извлечь содержимое слогана:

    <a href="/sitemap">Sitemap</a>

... Я бы использовал:

    >>> import re
    >>> s = '''
    <div id=hotlinklist>
    <a href="foo1.com">Foo1</a>
      <div id=hotlink>
        <a href="/">Home</a>
      </div>
      <div id=hotlink>
        <a href="/extract">Extract</a>
      </div>
      <div id=hotlink>
        <a href="/sitemap">Sitemap</a>
      </div>
    </div>'''
    >>> m = re.compile(r'<a href="/sitemap">(.*?)</a>').search(s)
    >>> m.group(1)
    'Sitemap'
5
ответ дан 8 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: