javascript - 正则表达式捕获不匹配
问题描述
我有一个游戏的正则表达式,它应该以go [anything]
or的形式匹配字符串[cardinal direction]
,并捕获 the[anything]
或[cardinal direction]
. 例如,以下将匹配:
go north
go foo
north
以下内容不匹配:
foo
go
我能够使用两个单独的正则表达式来做到这一点:/^(?:go (.+))$/
匹配第一种情况,并/^(north|east|south|west)$/
匹配第二种情况。我试图将正则表达式组合为/^(?:go (.+))|(north|east|south|west)$/
. 正则表达式正确匹配我所有的测试用例,但它没有正确捕获第二种情况。我尝试将正则表达式插入 RegExr 并注意到即使第一个案例没有被匹配,它仍然被捕获。
我该如何纠正?
解决方案
推荐阅读
- python - 炸弹包括python中的有序对
- google-chrome-extension - Linux 安装上的 Chrome 扩展程序“包无效”错误
- python - poliastro epoch:如何指定非默认值?
- node.js - 为什么我的标题没有插入到我的数据库中?
- sql - 合计员工/plsql的总就业时间/年
- java - 为什么我必须为位掩码声明一个长变量?
- python - Heroku 30s 超时错误,如何使 Django 将变量创建视为后台任务(工作者)?
- java - 使用 setOnClickListener 将项目绑定到位置
- parsing - 为带括号的逻辑运算符实现上下文无关文法
- java - “变量”不能解析为变量