Выражение регулярного выражения от знака хеша "#" до следующего пробела - PullRequest
1 голос
/ 19 апреля 2019

У меня есть строка сценария:

#type1 this is the text of the note

Я пробовал это, но я не тренируюсь:

^\#([^\s]+)

Я смотрю, чтобы поймать type в другихслова I, чтобы получить что-то между хеш-знаком "#" и следующим пробелом, исключая хеш-знак "#", и строка, которую я хочу перехватить, представляет собой буквенно-цифровую строку.

Ответы [ 4 ]

0 голосов
/ 21 апреля 2019

Я понял это.

/^\#([^\s]+)+(.*)$/

0 голосов
/ 19 апреля 2019

Вы действительно близко:

/^\#(\w+)\s/

\ w соответствует любым буквам или цифрам (и подчеркиванию тоже).И пространство должно быть за пределами соответствующей группы, так как, я думаю, вы не хотите его захватывать.

0 голосов
/ 19 апреля 2019

Чтобы получить буквенно-цифровое совпадение (которое даст вам type1), вместо отрицательного класса символов [^\s], который не соответствует символу пробела, вы можете использовать класс символов и указать, что вы хотите сопоставить, например [A-Za-z0-9].

Затем используйте отрицательный взгляд, чтобы утверждать, что справа не символ без пробелов:

^#([A-Za-z0-9]+)(?!\S)

Regex demo

Ваш матч находится в первой группе захвата. Обратите внимание, что вам не нужно бежать \#

Например, используя флаг без учета регистра /i

const regex = /^#([A-Za-z0-9]+)(?!\S)/i;
const str = `#type1 this is the text of the note`;
console.log(str.match(regex)[1]);

Если вы хотите соответствовать только типу, вы можете использовать:

^#([a-z]+)[a-z0-9]*(?!\S)

Regex demo

const regex = /^#([a-z]+)[a-z0-9]*(?!\S)/i;
const str = `#type1 this is the text of the note`;
console.log(str.match(regex)[1]);
0 голосов
/ 19 апреля 2019

С помощью функции регулярного выражения, предоставляемой Javascript:

exec_result = /#(\w*)/.exec('#whatever string comes here');

Я считаю, exec_result[1] должна быть строка, которую вы хотите.

Возвращаемое значение метода exec() можно найти здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...