Как я могу объединить два хэша в Perl без использования цикла?

Отказ от ответственности: используйте парсер, если у вас есть опция. Тем не менее ...

Это регулярное выражение, которое я использую (!) Для соответствия тэгам HTML:

<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>

Это может быть не идеально, но я запустил этот код через lot HTML. Обратите внимание, что он даже ловит странные вещи, такие как , которые появляются в Интернете.

Думаю, чтобы он не соответствовал самодостаточным тегам, вы либо захотите использовать Kobi :

<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+(?

или просто объединить, если и если нет.

To downvoters: Это рабочий код из реального продукта. Я сомневаюсь, что кто-либо читает эту страницу, создается впечатление, что социально приемлемо использовать регулярные выражения для HTML.

Предостережение. Я должен заметить, что это регулярное выражение все еще ломается при наличии блоков CD87, комментариев и элементов сценария и стиля. Хорошая новость заключается в том, что вы можете избавиться от тех, кто использует регулярное выражение ...

13
задан brian d foy 8 August 2009 в 01:11
поделиться

2 ответа

Если вы имеете в виду взять объединение их данных, просто сделайте:

%c = (%a, %b);
32
ответ дан 1 December 2019 в 17:23
поделиться

Вы также можете использовать срезы для слияния одного хэша с другим:

@a{keys %b} = values %b;

Обратите внимание, что элементы в% b будут перезаписывать элементы в% a с таким же ключом.

24
ответ дан 1 December 2019 в 17:23
поделиться
Другие вопросы по тегам:

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