请教字符串分割问题

qq_18889079 2016-12-17 01:04:51
大家好中午好,VB.NET新手,现在有一个文本文档,里面的数据如下:
CHORD WID 374.613 373.047 1.566 1.900 -1.900 --------*
MAX THICK 105.805 106.010 -0.205 1.900 -1.900 ----*----
CV CONT MIN -1.278 0.000 -1.278 1.900 -1.900 -*-------
CV CONT MAX 0.748 0.000 0.748 1.900 -1.900 ------*--
CC CONT MIN -0.339 0.000 -0.339 1.900 -1.900 ---*-----
CC CONT MAX 1.422 0.000 1.422 1.900 -1.900 -------*-
LE CONT'R MIN -1.161 0.000 -1.161 1.900 -1.900 -*-------
LE CONT'R MAX 0.719 0.000 0.719 1.900 -1.900 ------*--
LE CONT'R MIN -1.161 0.000 -1.161 1.900 -1.900 -*-------
LE CONT'R MAX 0.719 0.000 0.719 1.900 -1.900 ------*--

我想把第一列英文字母组合和后面的数字部分分离处理,这些字母可能没有空格,也可能有一个空格甚至多个空格
用正则表达式,怎么都不成功
...全文
659 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2017-02-12
  • 打赏
  • 举报
回复
虽然大神喜欢摆姿态说教,说话不太着46,但是这回他没说错。 列与列之间的分割方法不唯一,有可能是用TAB分隔,逗号分隔,空格分隔,定长字段 你直接放这段文本上来不太好确认具体分割方式(有可能是tab分隔,空格分隔,定长字段),如果文本里字段和字段之间用的是TAB来分隔,那最简单,第一列的数据本身是不可能含tab的,直接用tab来做split分隔符一下就行。 如果字段和字段之间用的是空格,可以用space(2)来做分割符,取数组第一个元素,如果你还想取后面其它列的数据,那就在分割前,用循环处理一下,替换所有space(3)为space(2),替换完再分割
qq_18889079 2017-02-12
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
许多文本数据协议都是从“偏移位置”开始表示数据的,而不是什么“分割”。 例如
var line = "CHORD WIDppppppppppp   374.613   373.047     1.566";
var value = double.Parse(line.Substring(20, 10));
表示从第21个字符开始,10个字符是 value。 这里是位置协议,不是什么分割。你在编程之前要先能够理解数据表示协议,而不要盲目胡乱解释!
=== 这为大神真搞笑,还什么数据协议,我TM这就是个文本,简单的文本,我把他其中的东西分割出来,有问题?
baidu_37187202 2016-12-28
  • 打赏
  • 举报
回复
(?=\S)[-\d].*?(?=[$\n])
  • 打赏
  • 举报
回复
许多文本数据协议都是从“偏移位置”开始表示数据的,而不是什么“分割”。 例如
var line = "CHORD WIDppppppppppp   374.613   373.047     1.566";
var value = double.Parse(line.Substring(20, 10));
表示从第21个字符开始,10个字符是 value。 这里是位置协议,不是什么分割。你在编程之前要先能够理解数据表示协议,而不要盲目胡乱解释!
Tiger_Zhao 2016-12-19
  • 打赏
  • 举报
回复
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sr As New System.IO.StreamReader("Z:\test.txt")
Dim reg As New System.Text.RegularExpressions.Regex("^([A-Za-z' ]+)(.*)$")
Dim i As Integer = 0

While Not sr.EndOfStream
Dim strLine As String = sr.ReadLine()
i += 1
With reg.Matches(strLine)
If .Count = 0 Then
Debug.Print(String.Format("第{0}行:不可分|{1}", i, strLine))
Else
Debug.Print(String.Format("第{0}行:{1}|{2}", i, .Item(0).Groups(1).Value.Trim(), .Item(0).Groups(2).Value))
End If
End With
End While
End Sub

End Class
内容概要:本文系统研究了基于CNN-SVM的卷积神经网络与支持向量机融合的数据分类预测方法,聚焦其在工业故障识别中的应用,提供了完整的Matlab代码实现。通过CNN提取输入数据的深层空间特征,再由SVM进行高精度分类,充分发挥两者优势,有效提升了故障识别的准确性、鲁棒性与泛化能力。该方法特别适用于处理电力系统、机械设备等领域的高维、非线性、强噪声监测数据,在变压器故障诊断、轴承缺陷识别等场景中具有重要应用价值。文档还整合了机器学习、深度学习、图像处理、路径规划、电力系统优化等多个前沿科研方向的技术资源,配套大量Matlab/Simulink仿真案例与Python代码,全面支持科研复现与工程实践。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事电气工程、自动化、人工智能、机械故障诊断等相关领域研究的研发人员及高校研究生; 使用场景及目标:① 实现工业设备的状态监测与多类别故障分类;② 深入理解CNN与SVM融合模型的设计原理与工程实现细节;③ 借助所提供的丰富算法案例开展科研复现、模型优化与系统仿真验证; 阅读建议:建议按照文档目录结构系统化学习,结合百度网盘提供的完整代码资源进行动手实践,重点关注CNN特征提取层与SVM分类器之间的数据接口设计与参数调优策略,同时可延伸学习文中涉及的其他智能算法及其在电力系统、信号处理等领域的交叉应用,全面提升科研创新能力。

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧