正则表达式在冒号后获取值并忽略方括号或尖括号

时间:2017-04-13 08:55:01

标签: regex expression

我尝试使用谷歌搜索,但无法找到我想要的东西。在正则表达式测试中尝试了一些解决方法,但无济于事。

我想在冒号后得到值,但不要包含方括号或角括号。

基于以下示例意义:

userId: user1
userId: <user1>
userId: <user 1>
[userId: <user1>]

我应该只获得值user1

我尝试了这个正则表达式:userId:\s(.*?])但它会在user1之后获得<>]

顺便说一下,如果它有任何帮助,我正在使用Ruby Regular Expression Editor。

更新: 需要处理中间间隔的字词。

2 个答案:

答案 0 :(得分:0)

您可以尝试:

userId:\W*([\w ]+)

请参阅Live demo

答案 1 :(得分:0)

您可以使用/(:\s<?)(\w+\s?\d)/g,然后匹配第二组:

var myString = "[userId: <user1>]";
var myRegexp = /(:\s<?)(\w+\s?\d)/g;
var match = myRegexp.exec(myString);
console.log(match[2]); // user1

请注意,"userId: <user 1>"将返回"user 1"