为了账号安全,请及时绑定邮箱和手机立即绑定

在“未定义”变量上拆分字符串

在“未定义”变量上拆分字符串

C#
胡说叔叔 2021-06-22 17:19:47
我有一段有多种格式的文本,我想尝试创建一种包含所有格式的方法。我知道我可以在哪里分割这些线,但是,我不确定如何定义它。文本示例:.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]

$& 替换为原始匹配


查看完整回答
反对 回复 2021-06-26
  • 2 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信