offset怎么起作用的实在不明白,和正则表达式组合起来让人看不懂。随便回答不给分
这代码是 js 的代码,
\[offset\: 和 \] 是普通文本,分别是 “[offset" 和 ”]“,这些是要求在字符串中必须出现的,
然后后面的
(\-?\d+)这里的 \- 表示 ”-“ 字符,其后面的元字符?表示前面的”-“可有可无(有的话,最多为一个)。
后面的 \d 表示一位数字,而其后的元字符 + 表示前面的 \d 至少有一个或更多个。
那么,我们就知道
\-?\d+
是匹配一个正负整数的了,而它左右的圆括号是为了捕获数字这部分的内容,这里把数字部分捕获后,会存入 $1 组里。
在js中,正则前后要各带上个斜杠,那就是 /\[offset\:(\-?\d+)\]/,后面再带上个 i 参数表示忽略大小写(对大小写不敏感),
后面的 test 是正则里的一个测试方法,这里将 lyric 变量的字符串值传入进去进行匹配测试,如果传入的内容是符合”[offset:正或负的整数]“格式的话,那就返回 true,否者返回 false。
这是歌词内容, /\[offset\:(\-?\d+)\]/是捕获每一个中括号里的值,还是具体某一个。如果是具体某一个,请指出来.谢谢!
呵呵,原来是歌词啊,这样的话,什么也捕获不了。
对于表达式 /\[offset\:(\-?\d+)\]/ ,它会匹配“[offset:正负数]”的模式的文本,然后捕获括号里的内容到$1组中(也就是 \-?\d+ 匹配到的部分)
你想获取的是哪部分内容?
这是一个解析lrc歌词的函数的开头,我不知道 RegExp.$1返回的是什么,如果可以的话请把下面的正则表达是讲解一下,我不知道他们分别匹配什么,歌词如上
你看前面离它最近的那正则表达式,从左往右数第一个括号,$1就是这个括号匹配的内容,$2 是第二个,$3是第三个,以此类推