2015-10-08 2 views
0

у меня есть:Извлечь информацию из строки с помощью REGEX?

var str = 'WEB-3545 Detta är ett REGEX test WEB-3545'; 

Я хочу:

['WEB', '3545']; 

Пытались что-то вроде:

str.match(/^(WEB-|DR-)\d+\s/) 

Узор Я соответствие с это: Строка должна начинаться с: WEB- ИЛИ DR- Далее следуют 1 или более номеров Завершить пробел

Ex;

Так, в приведенном выше примере только выделенной части должны соответствовать: 'WEB-3545 Detta тест REGEX är ETT WEB-3545'

Я могу только запустить регулярные выражения операции, не создавая петлю или что-нибудь - потому что это используется в POM-файле Maven.

Оба решения Java и JavaScript в порядке.

Спасибо!

/J

+0

Попробуйте 'str.match (/ WEB \ - \ d + /) [0] .split ('-') ; ' – Tushar

ответ

2

Вы можете использовать регулярное выражение ^\s*(WEB|DR)-(\d+)\b и использовать splice() удалить матч строки, так как нужно только захватить группу

var str = 'WEB-3545 Detta är ett REGEX test WEB-3545'; 
 
var res = str.match(/^\s*(WEB|DR)-(\d+)\b/).splice(1); 
 

 
document.write(JSON.stringify(res));

Regular expression visualization

+0

@jBoive: рад помочь :) –

0

Регулярное выражение должно быть /^(WEB|DR)-(\d+)\b/, \b соответствует слово край, нет необходимости использовать \s :)

var reg = /^(WEB|DR)-(\d+)\b/; 
var str = 'WEB-3545 Detta är ett REGEX test WEB-3545'; 
console.log(str.match(reg).slice(1));//remove input match 
Смежные вопросы