javascript - 为什么javascript中的这个正则表达式返回未定义?
问题描述
当我找到一个';'时,我试图拆分一个字符串 我的输入是'int':
var codigo="int a;float b,c;c=a*b;"
我试图使用的正则表达式是:
codigo=codigo.split(/(\b;)|(\bint)/)
我的输出是:
["", undefined, "int", " a", ";", undefined, "float b,c", ";", undefined, "c=a*b", ";", undefined, ""]
解决方案
我相信这是因为您有两个捕获组,JavaScript 必须在输出数组中保留两个位置以进行匹配。但是,由于 RegEx 的编写方式,这些捕获组中只有一个匹配。我认为如果您将捕获组组合成一个捕获组,则undefined
s 应该消失:
codigo=codigo.split(/(\b;|\bint)/)
推荐阅读
- kotlin - 为什么 ”!!” 将 readline 字符串值转换为 int 时需要
- oracle - 通过多个表上的触发器在 1 个表中添加数据
- php - Amphp 并行是如何工作的?
- javascript - 无法将 cookie 设置为超过一周后过期
- linux - [: =: 一元运算符预期错误
- android - 如何禁用底部导航视图的菜单项?
- python - 如果模块 B 中的方法从模块 A 中获取类,是否有必要在模块 B 中导入模块 A?
- javascript - 使变量表现得像全局变量
- jquery - 将多个字符串值从 jquery ajax 发布到 C# 控制器
- android - 如何访问 Snapchat API