如何选择多维数组中的逗号?
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 搜索对话框(?<=array\[[^,]*),
呢?
【参考方案1】:
你可以使用这个表达式:
\[([0-9]+),\s*([0-9]+)\]
并将其替换为:
[$1][$2]
此表达式匹配的次数远低于您当前的尝试,这将导致匹配错误的可能性较小。
【讨论】:
稍微修改了一下,效果很好。问题是它只会选择数字。array\[(.+),\s*(.+)\]
以上是关于如何选择多维数组中的逗号?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据oracle plsql中列中的逗号分隔值拆分选择查询行