所以我有这个字符串[14:42:49] Any Nick Name: Message bla bla
,我唯一想要的是Any Nick Name
。
我从来都不擅长正则表达式,我不记得如何获得结果的特定部分。我来到这里:/\[([0-9]{2}(:|\])){3} (.+):/g
导致[14:42:49] Any Nick Name:
。
确定我可以删除带有substr等的最后一个和第一个部分,但是不是更简单的方法吗?
答案 0 :(得分:2)
这是正则表达式
/\[[^\]]+\]\s([^\:]+)/g
// test with
"[14:42:49] Any Nick Name: Message bla bla".match(/\[[^\]]+\]\s([^\:]+)/g);
// "Any Nick Name"
console.log(RegExp.$1)
答案 1 :(得分:1)
你的正则表达式几乎是正确的。
var regexp = /^\[\d{2}:\d{2}:\d{2}\] (.+):/;
这与[xx:xx:xx] something:
匹配,x
为数字。 ^
表示字符串应该从那里开始,\d
表示数字。 g
标志不会在此处添加任何内容。
使用.exec
,并使用[1]
获取第一组(在parens内匹配的字符):
regexp.exec("[14:42:49] Any Nick Name: Message bla bla")[1];
// "Any Nick Name"
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以像]
(包括空格)一样使用正面的lookbehind:
(?<=]\s)[\w\s]+