java - 如何修改读取 vector 的正则表达式来读取矩阵?

标签 java regex matrix vector token

我有以下正则表达式,可以读取任意大小的数组,例如 {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*)?\\},?)+\\}"

关于java - 如何修改读取 vector 的正则表达式来读取矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53545817/

相关文章:

matlab - 根据元胞数组中的内容查找列索引

java - 字符串到本地日期中的月年

java - 如何将数据插入带有外键的表中?

java - 使用 JAX-RS GenericType 进行 Jackson 对象映射

matrix - 将距离矩阵可视化为图形

xml - 如何在 XML 中保存和读取 OpenCV 中新的 C++ 样式矩阵对象?

java 使用未经检查或不安全的操作重新编译并出现 xlint 错误?

Java正则表达式: Remove Dashes and Whitespace Not Working

c# - 路由,如果包含单词则匹配特定的url

PHP glob() 正则表达式模式