javascript - Firefox 正则表达式的正则表达式
问题描述
我正在使用这个正则表达式/(?<=^| )\d+(\.\d+)?(?=$| )/
,它包含一个积极的后视,但它似乎在 Firefox 中不起作用,我遇到了一个异常。有什么替代方法?
解决方案
(?:^| )
您可以在保持交替的非捕获组中将积极的向后看。
然后在捕获组中捕获您的值,(\d+(?:\.\d+)?)
并将可选的小数部分也转换为非捕获组。支持正向前瞻,因此您可以保持原样。
(?:^| )(\d+(?:\.\d+)?)(?=$| )
let strings = [
"1",
"1.2 ",
"0",
"0.122",
" 1",
" 1.2",
" 0",
" 0.122",
];
let pattern = /(?:^| )(\d+(?:\.\d+)?)(?=$| )/;
strings.forEach(s => {
console.log(s.match(pattern)[1])
});
推荐阅读
- python - Quart 应用程序 - “没有 WebSocket 升级”?
- elasticsearch - 值不存在
- gitlab-ci - gitlab-ci 测试构建失败
- string - 在 go 中创建子字符串会创建一种新的符号
- python - Dask datframe 比较两列并将结果(真,假)分配给另一列
- c# - 如何将 SmartAssembly 8 与 .NET 3.1+ 单文件可执行文件 (.EXE) 发布一起使用,而不是最终得到捆绑的、未混淆的依赖项?
- python - 如何从 Python 中的其他文件夹导入函数?
- java - 如何将 XML 报告转换为 TestNG Java 的 JSON 报告
- import - 通过发出 SELECT 查询无法看到重新导入的 InfluxDB 数据,它在哪里?
- c - 为什么我的 Idris FFI 函数没有打印 REPL 中的值?