java - 如何修改读取向量以读取矩阵的正则表达式?
问题描述
我有以下正则表达式可以读取任何大小的数组,例如 {1.0, 2, 3, 5.4}:
"\\{\\s*((-?\\b\\d+(?:\\.\\d+)?(?:/\\d+(?:\\.\\d+)?)?\\b)+(\\s*,\\s*(-?\\b\\d+(?:\\.\\d+)?(?:/\\d+(?:\\.\\d+)?)?\\b)+)*\\s*)?\\}"
我怎样才能修改它,使它可以读取任何维度的矩阵,例如:{{1.2, 3,4},{2,3.4,3}} 等?
解决方案
我认为您只需要添加外大括号并使用可选的逗号重复现有模式:前缀:{(。外大括号和左括号,以便可以重复现有的正则表达式。
"\\{\\s*((-?\\b\\d+(?:\\.\\d+)?(?:/\\d+(?:\\.\\d+)?)?\\b)+(\\s*,\\s*(-?\\b\\d+(?:\\.\\d+)?(?:/\\d+(?:\\.\\d+)?)?\\b)+)*\\s*)?\\}"
附加:,?)+}。逗号 - 问号使其可选,然后关闭括号并允许它重复 1 次或多次,最后是结束的外花括号
将它们放在一起并添加所需的转义以获得:
"\\{(\\{\\s*((-?\\b\\d+(?:\\.\\d+)?(?:/\\d+(?:\\.\\d+)?)?\\b)+(\\s*,\\s*(-?\\b\\d+(?:\\.\\d+)?(?:/\\d+(?:\\.\\d+)?)?\\b)+)*\\s*)?\\},?)+\\}"
推荐阅读
- r - 如何使用 Tidymodels 中的更新功能更新调整参数值
- python - Reshape a pandas Series
- sql - 锯齿模式局部最大值的每日总计
- javascript - 函数`this`在nodejs的模块中不起作用
- c - 解决 valgrind“可能丢失”的内存泄漏
- macos - 终端 Mac OS 显示 A^[[C^[[C^[[B^[[D 当按箭头键盘
- python - 在 python 中使用基本递归绘制分形时出错
- c# - JsonConvertDeserializeObject 无法正常工作
- javascript - 如何从 BigInt 计算百分比?
- go - 合并具有一些重叠字段的结构