i have string
classifier1:11:some text1##classifier2:fdglfgfg##classifier3:fgdfgfdg##classifier4 i trying capture terms classifier1:11, classifier2:, classifier3 , classifier4
so these classifiers can followed single semicolon or not.
so far came with
/([^#]*)(?::(?!:))/g but not seem capture classifier4, not sure missing here
it seems classifier in case consists of word chars may have single : in between , ends digit.
thus, may use
/(\w+(?::+\w+)*\d)[^#]*/g see regex demo
explanation:
(\w+(?::+\w+)*\d)- group 1 capturing\w+- 1 or more[a-za-z0-9_](word) chars(?::+\w+)*- 0 or more sequences of 1+:s , 1+ word chars\d- digit should @ end of group
[^#]*- 0 or more characters other delimiter#.
js:
var re = /(\w+(?::+\w+)*\d)[^#\n]*/g; var str = 'classifier4##classifier1:11:some text1##classifier2:fdglfgfg##classifier3:fgdfgfdg\nclassifier1:11:some text1##classifier4##classifier2:fdglfgfg##classifier3:fgdfgfdg##classifier4'; var res = []; while ((m = re.exec(str)) !== null) { res.push(m[1]); } document.body.innerhtml = "<pre>" + json.stringify(res, 0, 4) + "</pre>";
Comments
Post a Comment