2016-05-17 4 views
2

Мои данные:RegEx JavaScript: экстракция Символ после цифры

abc3# de2! fghi1? 

Что мне нужно регулярное выражение, которое будет извлечь символ, который приходит сразу после цифры (1, 2 или 3), так что матч будет : #, !, ?

Я смотрел в не группы захвата и такие, но не мог заставить его работать правильно: (?:1|2|3)[\S]+

+0

вы хотите символ после ** ** любые цифры или только после того, как "1", «2» и «3»? – talemyn

ответ

1

Регулярное выражение более или менее правильно, я бы использовал

\d([^\w\s]+) 

, а затем вам нужно использовать RegExp#exec:

var re = /\d([^\w\s]+)/g;     // Declare the regex 
 
var str = 'abc3# de2! fghi1?'; 
 
var res = []; 
 
while ((m = re.exec(str)) !== null) { // find a match 
 
    res.push(m[1]);     // Get the captured value only 
 
} 
 
document.body.innerHTML = "<pre>" + JSON.stringify(res, 0, 4) + "</pre>";

Регулярные выражения

  • \d - a цифра
  • ([^\w\s]+) - группа захвата, соответствующая 1 + неглавные и небелые символы.

Если вы хотите, чтобы убедиться, что они соответствуют только в конце слова или строки, вы можете использовать регулярное выражение .

+0

Да. , , это в значительной степени то, что я буду использовать. Единственное, что я могу изменить, это шаблон регулярного выражения, в зависимости от некоторых пояснений к правилам захвата. – talemyn

0

Вам нужно \d(\W) захватить символ после пит бер см live demo

Смежные вопросы