我正在尝试匹配字符串中的矩阵(例如)sin([[1,2][3,4]])
,但我不能在我的生活中找出一个有效的正则表达式。我尝试过像\[[0-9\.,\[\]]*\]
这样的东西,但都没有。我在Java(在Android上)工作。
有人能帮帮我吗?这是阻止进行大型git提交的最后一件事。
更多细节:矩阵将是任意大小,如[[1,2,3,4][5,6,7,8][9,10,1,12]]
。我想要一个正则表达式,它将推出整个矩阵(不是单个部分,因为它会被函数,运算符等所包围。矩阵中的数字将是整数或双精度。科学符号也是可能的.Hex /其他基地不是。
解决方案:\[.+\]
无法正常工作的原因是因为Java的String.matches没有像我想象的那样工作,而且因为我将它与另一个正则表达式结合使用(它本身运行良好) 。显然?|
表示正则表达式中的内容。
答案 0 :(得分:0)
\[(\d+\.?\d*),(\d+\.?\d*)\]
这样的东西?我有点困惑你想做什么。此代码从[digit,digit]
之类的组中提取值,并将它们放入两个捕获组中。它还处理小数:)。
答案 1 :(得分:0)
我使用以下正则表达式来验证匹配向量(方括号内用逗号分隔的数字)或矩阵(方括号内用逗号分隔的向量)的字符串。处理负数和正数,小数点甚至指数计数法。
/(\[+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?,?)+[\]\,]+)+/g
上面的正则表达式可以匹配:
我曾经验证来自Web服务的JSON格式的数据,以确保所提供的值正确地设置为矢量或矢量列表(矩阵)。
它对我有用,我希望对任何人都有用。