1
我在一些javascript代碼中發現了這個,並想知道它是什麼。這是什麼javascript正則表達式在做什麼?
var i = /^tags: ?((?:.*, ?)*.*)$/m.exec(e.details);
我在一些javascript代碼中發現了這個,並想知道它是什麼。這是什麼javascript正則表達式在做什麼?
var i = /^tags: ?((?:.*, ?)*.*)$/m.exec(e.details);
^ //start of the string
tags: //4 characters: "tags"
? //an optional space
((?:.* // 0 or more of any character except a newline
, ?) //a comma, then an optional space
* // all the stuff on the previous 2 lines, repeated 0 or more times
.*) //a capturing group of any character, repeated 0 or more times
$ //end of the string
基本上,標籤列表以逗號分隔。
此正則表達式恰好接受開頭的任何字符串「的標籤:」
它試圖冒號後捕捉到的東西。 (注意:我認爲它不符合作者的要求,因爲.*
是貪婪的。)它將它全部捕獲到一個組中,而不是每個組的一個標籤。
東西類似'tags:foo,bar,baz' – Blender
[tadaaaa](http://rick.measham.id.au/paste/explain.pl?regex=%5E%28%3Fm%29tags%3A+% 3F%28%28%3F%3A。*%2C +%3F%29 *。*%29%24) – HamZa