В дополнение к приведенным выше ответам в Python 3
мы можем просто создать list
значений результата из map
как
li = []
for x in map(chr,[66,53,0,94]):
li.append(x)
print (li)
>>>['B', '5', '\x00', '^']
. Мы можем обобщить другой пример, где я был поражен , операции на карте также можно обрабатывать аналогичным образом, как в regex
, мы можем написать функцию, чтобы получить list
элементов для отображения и получить результат в одно и то же время. Ex.
b = 'Strings: 1,072, Another String: 474 '
li = []
for x in map(int,map(int, re.findall('\d+', b))):
li.append(x)
print (li)
>>>[1, 72, 474]
Ну, sysrqb позволит Вам соответствовать чему-либо в первом абзаце, предполагающем, что в абзаце нет никакого другого HTML. Вы могли бы хотеть что-то больше как это
<p>.*?</p>
Размещение ?
после Вашего *
делает это нежадным, означая, что это будет только соответствовать такому же маленькому тексту по мере необходимости прежде, чем соответствовать </p>
.
Если Вы используете preg_match
, используйте флаг "U" для создания этого нежадным.
preg_match("/<p>(.*)<\/p>/U", $blog_post, &$matches);
$matches[1]
будет затем содержать первый абзац.
Это, вероятно, было бы легче и быстрее для использования ремней для правки бритв () для нахождения положения первого
<p>
и сначала
</p>
затем используйте substr () для извлечения абзаца.
$paragraph_start = strpos($blog_post, '<p>');
$paragraph_end = strpos($blog_post, '</p>', $paragraph_start);
$paragraph = substr($blog_post, $paragraph_start + strlen('<p>'), $paragraph_end - $paragraph_start - strlen('<p>'));
Править: На самом деле regex в ответах других будет легче и быстрее..., Ваш большой комплекс regex в вопросе смутил меня...