我试图在模式之后获得第一个字符。
即
border-top-color
padding-top
/-[a-z]/g
选择:
border[-t]op[-c]olor
padding[-t]op
我想选择:
border-[t]op-[c]olor
padding-[t]op
如何在选定的模式后获得第一个字符?
答案 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来匹配它:
/(?<=-)./