javascript - 正则表达式 - 匹配字符串中的标记
问题描述
我有一个代表一系列按键和释放的字符串。在此模式中,CTRL+C 将表示为:
P CTRL P C R C R CTRL
即,P 表示“按下”或“R”表示释放加上一些键名。我想要一个正则表达式,它将所有这些标记提取到一个数组中:
['P CTRL', 'P C', 'R C', 'R CTRL']
我该怎么做?
解决方案
如果您使用(?=[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"]
(请注意,在撰写本文时,堆栈片段似乎已关闭。)
推荐阅读
- mysql - 使用 PDO 获取 MySQL 表的列名
- java - 使用 Java 将 Redis 数据库连接到 Azure 云
- php - @yield 不显示 Laravel 上的内容
- php - 为什么网站有一种间接的方式来显示用户个人资料图片?
- javascript - 根据具有匹配值的参数数组对对象数组进行排序
- .htaccess - 在维护期间重定向除我之外的所有用户
- javascript - AJAX 不返回预期的响应
- flutter - 在颤动中更改滑块拇指位置
- python - 如何在 Selenium WebDriver 中设置浏览器的宽度和高度?
- reactjs - 如何在 React useState 中修改 JSX