Regex exampleRegex wrapping word
Как я могу исключить первое место в каждом матче?
То же самое регулярное выражение: (?:^|\W)#(\w+)(?!\w)
Regex exampleRegex wrapping word
Как я могу исключить первое место в каждом матче?
То же самое регулярное выражение: (?:^|\W)#(\w+)(?!\w)
Это то, что вы ищете?
http://regexr.com/3ca98
Из информации, которую вы не дали нам до сих пор, это регулярное выражение должно быть достаточно: #(\w+)(?!\w)
.
Но, может быть, есть нечто большее, чем мы знаем. Что вы хотели достичь с помощью (?:^|\W)
?
Edit: Думая о том, что вы, вероятно, хотите достичь, это произошло со мной, что вы могли бы соответствовать только вашему шаблону, если он не в середине другого слова (например test#case
). Вы, вероятно, не хотите, чтобы это соответствовало.
Чтобы исключить такие случаи, вы должны убедиться, что перед ним есть какой-то символ пробела или, другими словами: ничего, кроме символов пробелов или ничего.
Я предполагаю, что вы используете javascript, потому что regexr.com делает и, к сожалению, не существует регулярных выражений, доступных в реализации регулярных выражений javascript. Таким образом, нет реальной возможности убедиться, что перед вашим шаблоном нет ничего или пробелов.
Одним из решений было бы работать с группами захвата. Возьмите это регулярное выражение:
(?:^|\s+)(#\w+)
Он ищет одного или несколько пробельных символы или linestarts в передней части вашего рисунка, но не использует захват группы для этого. Затем ваш шаблон вверх, и это первая группа захвата во всем выражении.
Чтобы использовать это в javascript сейчас, вам необходимо создать экземпляр объекта RegExp и использовать его функцию exec до тех пор, пока не будет больше совпадений и сохраните первую группу захвата в массив результатов.
JS код:
var txt = text.innerHTML;
var re = /(?:^|\s+)(#\w+)/g;
var res = [];
var tmpresult = [];
while ((tmpresult = re.exec(txt)) !== null) {
res.push(tmpresult[1]); // push first capture group to result stack
}
result.innerHTML = JSON.stringify(res, null, 2);
JSFiddle: https://jsfiddle.net/j41tw4hm/1/
Обновлено regexr.com: http://regexr.com/3ca9n
Возможный дубликат [Использование регулярных выражений для удаления первого появления пустого пространства, а затем заменить остальные вкладки с запятыми] (http://stackoverflow.com/questions/2975490/using-regex-to-remove-the-first-occurrence-of-white-space-and-then-replace-the-r) –
Что вы означает «исключить первое пространство в каждом матче». Вы хотите совместить не-слово в качестве первого символа _except_ white пространство ? – sln
Ну, это будет '[^ \ w \ s]? # (\ W +) \ b' – sln