Регулярное выражение для поиска хэштегов

Используйте /\B#[A-Za-z0-9_]+/g, чтобы найти все совпадения в тексте. Каждый пример ниже проверен на этом шаблоне, а открыть его можно в Regex Tester с уже загруженными образцами.

Обновлено

Образец текста

Loving #regex and #JavaScript_tips! Not a tag: issue#42 or a lone # sign. #2026goals

3 совпадения

#regex #JavaScript_tips #2026goals

Как работает шаблон

ЧастьЗначение
\BНе граница слова: перед # не должна стоять буква или цифра, поэтому issue#42 пропускается
#Знак решётки
[A-Za-z0-9_]+Тег: буквы, цифры и символы подчёркивания

Примеры кода

JavaScript

const matches = text.match(/\B#[A-Za-z0-9_]+/g) ?? [];

Python

import re

matches = re.findall(r'\B#[A-Za-z0-9_]+', text)

PHP

preg_match_all('/\B#[A-Za-z0-9_]+/', $text, $m);
$matches = $m[0];

Примечания и ограничения

Чтобы поддерживать хэштеги на любом языке, используйте \B#[\p{L}\p{N}_]+ с флагом u в JavaScript (в Python для \p{…} нужен сторонний модуль regex).

Часто задаваемые вопросы

Какое регулярное выражение для поиска хэштегов?
/\B#[A-Za-z0-9_]+/g — оно находит все совпадения в тексте. Что делает каждая часть, см. в таблице выше.
Работает ли это в Python и PHP?
Да — в примерах кода выше используется тот же шаблон: модуль re в Python и функции preg в PHP.
Как проверить это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и текст загрузятся автоматически, а совпадения будут подсвечиваться при редактировании.