如何选择多维数组中的逗号?

Posted

技术标签:

【中文标题】如何选择多维数组中的逗号?【英文标题】:How to select the comma in multidimensional array? 【发布时间】:2017-08-21 15:28:33 【问题描述】:

我已经开发了很长时间的应用程序,我从使用矩形数组开始:

int[,] array = new int[900,800]

但是在给它一些更高的值之后,结果发现它导致了很多 OutOfMemoryException 问题,所以我决定用这样的多维数组替换它:

int[][] array /*init stuff*/

但是在这样做之后,编译器给了我大约 3000 个错误(显然),这需要很多时间来手动修复,所以我开始考虑用正则表达式替换所有的 ',' 为 ']['。我想在所有数组方括号内选择 , 。 到目前为止,我得到了:

(?<=array\[).*,

其中选择了','对,但也选择了索引的其余部分,如:

array[aaa,bbb]
      ^^^^
array[bbbb,ccc]
      ^^^^^

有没有办法只选择','比如:

array[aaa,bbb]
         ^

注意:它不一定是 100% 完美的,但我希望它在大多数情况下都能正常工作。 谢谢。

【问题讨论】:

您是使用 C# 代码执行正则表达式搜索,还是仅在 Visual Studio 的搜索对话框中执行搜索? VS 搜索对话框 (?&lt;=array\[[^,]*), 呢? 【参考方案1】:

你可以使用这个表达式:

\[([0-9]+),\s*([0-9]+)\]

并将其替换为:

[$1][$2]

此表达式匹配的次数远低于您当前的尝试,这将导致匹配错误的可能性较小。

【讨论】:

稍微修改了一下,效果很好。问题是它只会选择数字。 array\[(.+),\s*(.+)\]

以上是关于如何选择多维数组中的逗号?的主要内容,如果未能解决你的问题,请参考以下文章

表单中的多维数组发布

使用 jq 从多维 JSON 数组中选择第 n 个元素

如何根据列中的逗号分隔值进行选择

如何根据oracle plsql中列中的逗号分隔值拆分选择查询行

如何在 Collection anylogic 中创建多维数组?

如何使用第一个表中的逗号分隔值从另一个表中选择行? [复制]