簡體   English   中英

正則表達式:匹配日期和冒號之間的任何字符串

[英]Regex: match any string between date and a colon

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

我從來沒有真正擅長正則表達式,而且我不記得如何獲得結果的特定部分。 我到這為止了: /\\[([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)

您的正則表達式幾乎是正確的。

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

這與[xx:xx:xx] something:匹配[xx:xx:xx] something: x是數字。 ^表示字符串應從此處開始, \\d表示數字。 g標志在這里不添加任何內容。

使用.exec ,並使用[1]獲取第一組(在括號內匹配的字符):

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

如果您唯一想要的是“ Any Nick Name ,則可以使用以下命令:

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

演示: http ://regexr.com? 30btc (將鼠標懸停在每個選擇上可查看匹配的組)

您可以對[ ] (包括空格)使用正向后視,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM