c# - 追加数组和列表
问题描述
例如,如果输入的输入是:
1 2 3 |4 5 6 | 7 8
我们应该操纵它
1 2 3|4 5 6|7 8
另一个例子:
7 | 4 5|1 0| 2 5 |3
我们应该操纵它
7|4 5|1 0|2 5|3
这是我的想法,因为我想交换一些子数组(7;4 5;1 0;2 5;3)。
我不确定这段代码是否正常工作,它可能是我想做的基础,但我必须上传它让你看到我的工作。
static void Main(string[] args)
{
List<string> arrays = Console.ReadLine()
.Split(' ', StringSplitOptions.RemoveEmptyEntries)
.ToList();
foreach (var element in arrays)
{
Console.WriteLine("element: " + element);
}
}
解决方案
这可以用一个简单的正则表达式来做到这一点:
var result = Regex.Replace(input, @"\s?\|\s?", "|");
这将匹配任何(可选)空白字符,后跟一个|
字符,后跟一个(可选)空白字符,并将其替换为单个|
字符。
或者,如果您可能需要去除 周围的多个空格|
,请将零或一量词 ( ?
) 替换为零个或多个量词 ( *
):
var result = Regex.Replace(input, @"\s*\|\s*", "|");
为了同时处理数字之间的多个空格(不仅仅是|
字符周围),我推荐这样的东西:
var result = Regex.Replace(input, @"\s*([\s|])\s*", "$1")
这将匹配任何出现的零个或多个空白字符,后跟一个空白字符或一个|
字符(在 group 中捕获1
),然后是零个或多个空白字符,并将其替换为在 group 中捕获的任何内容1
。
推荐阅读
- python - 未找到带有参数“(”,)”的“后详细信息”的反向。尝试了 1 种模式:['post/(?P
[0-9]+)/$'] - azure - CosmoDB 序列生成器
- c++ - 此代码来自 Geeks for Geeks 网站关于 BFS
- javascript - 无法在手机中使用网络摄像头,但在 PC 中可以正常使用
- django - ReactJS API 调用 Django REST - 使用 IP 还是 localhost?
- apache-spark - Databricks:全局非托管表,分区元数据同步保证
- node.js - 如何在nodejs中监听来自worker的终止信号?
- php - 根据默认索引为数组动态添加空索引
- azure - 我们如何禁用 Key Vault 中的清除保护?
- python - 处理重复错误异常的问题(python)