gpt4 book ai didi

regex - 读取未知长度的线

转载 作者:行者123 更新时间:2023-12-02 07:26:50 24 4
gpt4 key购买 nike

我有一条未知长度的线,采用这种格式

bobaboao dsaas : 5->2  2->3  4->6  7->2  1->4  5->1  8->1  222->1  23->13 ...

我需要阅读每一个

"X->Y" 

并发送给函数

Dist(X,Y)

直到行尾

我如何在 MATLAB 中执行此操作?

最佳答案

我会将 regexp'tokens' 一起使用,它会提取括号 (()) 之间的匹配位:

>> C = regexp(s,'(\d*)->(\d*)','tokens')
C =
{1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell} ...
{1x2 cell} {1x2 cell} {1x2 cell} {1x2 cell}
>> xy = str2double(vertcat(C{:})).'
xy =
5 2 4 7 1 5 8 222 23
2 3 6 2 4 1 1 1 13

然后你有 X = xy(1,:);Y = xy(2,:);

解释:\d是一个数字([0-9]),\d*表示任意位数。将它们包装在 () 中使它们成为标记。整个模式定义了一个匹配项,但标记被提取到元胞数组的元胞数组中,每个匹配项对应一个元胞数组,其中包含标记的元胞数组。使用 vertcat 制作单个矩阵并使用 str2double 转换它很容易。

关于regex - 读取未知长度的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27426570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com