我有一段有多种格式的文本,我想尝试创建一种包含所有格式的方法。我知道我可以在哪里分割这些线,但是,我不确定如何定义它。文本示例:.0 index .0.label unicode "Area" .0.value unicode "6WAY DB" .1 index .1.label unicode "SubStation" .1.value unicode "E782DB257" .2 (etc...)我想将这些行拆分为“.0”、“.1”等,以便我的列表如下所示:.0 索引.0.label unicode “区域”.0.value unicode “6WAY DB”.1 索引.1.label unicode “SubStation”这将使数据更容易操作。但是,由于值根据行而变化,我不能简单地将该值设置为常规字符串。相反,我想说更像是string Split = "." + n.IsInt();或者类似的东西。但是,我还找不到任何有效的东西。
2 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
如果我理解您,您可以使用正则表达式替换执行以下操作
var input = ".0 index .0.label unicode \"Area\" .0.value unicode \"6WAY DB\" .1 index .1.label unicode \"SubStation\" .1.value unicode \"E782DB257\" .2 (etc...)";
var result = Regex.Replace(input, @"\.\d", $"{Environment.NewLine}$&");
Console.WriteLine(result);
或实际拆分
var lines = result.Split(new[]{Environment.NewLine},StringSplitOptions.None);
foreach (var line in lines)
Console.WriteLine(line);
输出
.0 index
.0.label unicode "Area"
.0.value unicode "6WAY DB"
.1 index
.1.label unicode "SubStation"
.1.value unicode "E782DB257"
.2 (etc...)
解释
.
匹配任何字符(行终止符除外)\d
匹配一个数字(等于[0-9]
)
$&
替换为原始匹配
- 2 回答
- 0 关注
- 140 浏览
添加回答
举报
0/150
提交
取消