正则表达式-匹配字符串中的标记

问题描述 投票:0回答:1

我有一个字符串,表示一系列的按键和释放。在此模式下,CTRL + C将表示为:

P CTRL P C R C R CTRL

即P代表'press'或'R'代表释放键。我想要一个将所有这些标记提取到数组中的正则表达式:

['P CTRL', 'P C', 'R C', 'R CTRL']

我该怎么办?

javascript regex
1个回答
1
投票

如果您使用(?=[PR] \w+)来匹配字符作为分隔符,则可以轻松完成此操作。这将在命令之间分割字符串。

这将匹配一个空格,其后为零宽度(实际匹配中不包括字符)正向超前断言。前瞻性确保空格后跟一个P或R,然后是一个空格,然后是一个或多个字母数字字符。

const keys = 'P CTRL P C R C R CTRL'.split(/ (?=[PR] \w+)/);
console.log(keys);
//["P CTRL", "P C", "R C", "R CTRL"]

((请注意,在撰写本文时,堆栈片段似乎已关闭。)

© www.soinside.com 2019 - 2024. All rights reserved.