Regex:匹配日期和冒号之间的任何字符串

Regex: match any string between date and a colon

本文关键字:之间 任何 字符串 日期 Regex      更新时间:2023-09-26

所以我有这个字符串[14:42:49] Any Nick Name: Message bla bla,我唯一想要的是Any Nick Name

我从来都不擅长regex,我不记得如何获得结果的特定部分。我走了这么远:/'[([0-9]{2}(:|'])){3} (.+):/g导致了[14:42:49] Any Nick Name:

当然,我可以用substr等删除最后和第一部分,但没有更简单的方法吗?

这是正则表达式

/'[[^']]+']'s([^':]+)/g
// test with
"[14:42:49] Any Nick Name: Message bla bla".match(/'[[^']]+']'s([^':]+)/g); 
// "Any Nick Name"
console.log(RegExp.$1)

您的regexp几乎是正确的。

var regexp = /^'['d{2}:'d{2}:'d{2}'] (.+):/;

这将[xx:xx:xx] something:x作为数字进行匹配。^表示字符串应该从那里开始,'d表示一个数字。g标志在此没有添加任何内容。

使用.exec,使用[1]获得第一组(括号内匹配的字符):

regexp.exec("[14:42:49] Any Nick Name: Message bla bla")[1];
// "Any Nick Name"

您可以对](包括空间)使用一个正的查找,如下所示:

(?<=]'s)['w's]+

如果你唯一想要的是Any Nick Name,你可以使用这个:

^.*?'] (.*?):

演示:http://regexr.com?30btc(将鼠标悬停在每个选择上以查看匹配的组)

相关文章: