如何使用正则表达式获取模式后的第一个字符?

时间:2015-05-15 07:45:22

标签: javascript regex

我试图在模式之后获得第一个字符。

border-top-color
padding-top

/-[a-z]/g

选择:

border[-t]op[-c]olor
padding[-t]op

我想选择:

border-[t]op-[c]olor
padding-[t]op

如何在选定的模式后获得第一个字符?

Example Here! :)

3 个答案:

答案 0 :(得分:2)

要获得border-之后的t,您通常会与此类正则表达式匹配:

border-(.)

然后您可以提取子匹配:

var characterAfter = str.match(/border-(.)/)[1];

match返回一个数组,其中整个匹配作为第一个元素,子匹配位于以下位置。

要获得短划线后所有字符的数组,请使用

var charactersAfter = str.match(/-(.)/g).map(function(s){ return s.slice(1) })

答案 1 :(得分:1)

只需使用捕获组:

"border-top-color".replace(/-([a-z])/g, "-[$1]")

结果:

"border-[t]op-[c]olor"

答案 2 :(得分:0)

你可以使用像distroy所说的子匹配,或者只是使用lookbehind来匹配它:

/(?<=-)./