这是我的代码段:
var myString = '#EXTINF:-1 group-title="|FR| CHAINES FRANÇAISES |FR|",|FR|*****CANALSAT*****|FR|';
var group_title = /(group-title=")(\S*)["]/;
var matchgroup_title = group_title.exec(myString);
console.log(matchgroup_title);
我对regex不熟悉,所以我听不懂这段代码。为什么exec在这里返回null?
答案 0 :(得分:1)
(group-title=")
匹配group-title="
(\S*)
匹配零个或多个非空白字符,因此|FR|
["]
然后匹配"
,但是没有一个(嗯,有,但是首先有空格字符,所以没有匹配项。)
答案 1 :(得分:1)
由于存在\S*
,因此存在问题。如果将其弹出到regex101.com中,将会看到:
因此,\s*
将匹配任何非空白字符,并且空格被视为空白字符,因此不匹配。您只需使用[^"]
来检查是否有其他引号。
您可以将其简化为:
var myString = '#EXTINF:-1 group-title="|FR| CHAINES FRANÇAISES |FR|",|FR|*****CANALSAT*****|FR|';
var group_title = /group-title="([^"]+)"/;
var matchgroup_title = group_title.exec(myString);
console.log(matchgroup_title);