Вам не нужно избегать октоторпа; это просто буквальный символ «#». Кроме того, если вы не хотите сохранять пространство, вы должны сделать его не захватывающим. Что-то вроде следующего:
/(?:#)(\w+)(?:\s)/g
В самом деле, вы должны быть в состоянии точно указать 6-значные алфавитно-цифровые, чтобы сделать его еще более конкретно и тогда она не будет искать подчеркивания, например:
/(?:#)([\da-zA-Z]{6})/g
EDIT:
Добавлено круглые скобки, чтобы сделать его захватить данные, которые вы заботитесь о.
EDIT 2:
Пожалуйста, не могли бы вы уточнить, что именно означает «Вы не должны , чтобы избежать знак числа» и «сделать это не-захват» в отдельных Примеры регулярных выражений.
Некоторые символы имеют специальное значение с помощью двигателей регулярных выражений. Вот несколько примеров:
$
^
.
+
Если вы хотите, чтобы соответствовать любому из этих символов в буквальном смысле, с помощью регулярных выражений, вы бы «убежать» эти символы. Например, если у вас есть такой текст: «? $^EATING?» и вы хотели бы сопоставить «EATING», вам нужно было бы написать регулярное выражение: EATING\?\?
, потому что «?» особый.
Если вы положили \
перед специальным символом, это называется «экранированием», так что механизм регулярных выражений будет рассматривать его как буквенный символ.
Характер знак числа (эта вещь: #) является не особый характер, так что вам не нужно, чтобы избежать этого. Это трактуется буквально, как и следующие символы: 8 o
.
Кроме того, вы можете искать материал с помощью регулярных выражений, но не «захватывать» этот материал.Это способ сказать следующее:
«Я хочу найти« a », а затем« b », а затем« c », но я хочу сохранить« a »и« b », и выбросить «c».
Группы без захвата - это то, как вы обычно это делаете.
Пожалуйста, проверьте мой ответ – Bannings