5735988 发表于 2026-1-21 19:47:53

把数据他分割为三段,分割不出来

本帖最后由 5735988 于 2026-1-21 19:52 编辑

#include <Array.au3>
; Local $str = "语文251/231/354/555/037/345/114张三"
; Local $str = "体育251/231/354/555/037/345/114张2三"
; 上面这2个也会出现

Local $str = "数学251/555/037/345/114李明"
Dim$Str2 ,$Zu_Liu
$str = StringReplace($str, ".\d{3}", " \d{3} ");整理三个号码的
$array = StringRegExp($str, "(?<!\d)\d{3}(?!\d)", 3);作用是替换掉/为空格
For $i = 0 To UBound($array) - 1
;~         MsgBox(4096, "转换完毕:", $array[$i], 1)
      If $array = "NotFound" Then
      Else
                $Str2 &= $array[$i] & " "

      EndIf
Next

$Zu_Liu = StringSplit($str, $Str2, 2)
_ArrayDisplay($Zu_Liu)

想要的结果:251 555 037 345 114 数学李明
思路,我想把他分割为三段,【1】 【2】【3】   就可以调换位置了,没想到好办法。



3131210 发表于 2026-1-22 14:21:07

本帖最后由 3131210 于 2026-1-22 14:26 编辑

Local $sSource = _
                '语文251/231/354/555/037/345/114张三' & @CRLF & _
                '体育251/231/354/555/037/345/114张2三' & @CRLF & _
                '数学251/555/037/345/114李明'
;~ MsgBox(0, '源字符串', $sSource)
Local $sSRERe = StringRegExpReplace($sSource, '(?m)^(.+?)([\d\/]+)(.+)$', '\2 \1\3')
MsgBox(0, '替换结果', $sSRERe)

页: [1]
查看完整版本: 把数据他分割为三段,分割不出来