javascript - 正则表达式匹配一个数字但不在另一个数字内
问题描述
我有一个像这样的正则表达式:[^А-я]17[^\d] /gi
在 Regex101.com 中带有“Javascript”风格。它在以下情况下正常工作:
часть 179-а
часть 17-а
часть 17-2-б
часть 17б
час17 а
часть 17К
它正确匹配第 2、3、4 和 6 行中的 17。也仅在 regex101 的单元测试中与 /i 一起使用。
我不需要找到数字在哪里,只需知道它在那里而不是另一个单词的一部分(但可以有后缀)。
此小提琴中的相同正则表达式不起作用(在循环内)。它给出了第 1 行(出于某种原因)、第 3 行和第 6 行。第 2 行和第 4 行在哪里?
我究竟做错了什么?下面小提琴内的代码:
var inp = 17;
var rg = new RegExp("[^А-я]"+inp+"[^\d]", 'gi');
var tst = ["часть 179-а","часть 17-а","часть 17-2-б","часть 17б","часть а17 а","часть 17К"]
for (var i = 0; i<tst.length; i++) {
if (rg.test(tst[i])) {
console.log("Here"+(i+1));
}
}
注意:我在 var 中需要 17,因为在真正的应用程序中有一个数字循环。
解决方案
推荐阅读
- kubernetes-helm - 引用函数与使用引号有什么区别?
- c - 哪个 C 标准头文件定义了 NULL 字符?
- ios - 将 mp4 文件与应用程序捆绑在一起,让用户直接从设备播放视频,而不是从云端下载视频
- excel - 复制和粘贴图表以在 VBA 中滑动
- java - 在 ControlsFX CheckComboBox 中设置默认选中的复选框
- reactjs - 在 JSX 中反应不呈现值
- visual-studio - 闪烁的文字和改变颜色
- java - 如何获取文档内数组的索引
- python - 如何在 Python 中模拟继承的协作方法
- jpa - 如何使用 RapidClipse 生成交叉表?