qsy666888 发表于 2018-3-19 09:00:25

字符串拆分问题(已解决)

本帖最后由 qsy666888 于 2018-3-19 16:04 编辑

有一串字符串,是用 | 隔开的几个数组,我想把它拆开,怎么写?
如 $text = '|一把剑和|一把刀|4646545|aklkf|计算器|AutoIt 脚本编辑器|西游记|654561255|'
拆分后我想得到:
$a1 = '一把剑和'
$a2 = '一把刀'
$a3 = '4646545'
$a4 = 'aklkf'
$a5 = '计算器'
$a6 = 'AutoIt 脚本编辑器'
$a7 = '西游记'
$a8 = '654561255'
数组有可能是9组10组的,如何写,在大侠手里应该不难。

zghwelcome 发表于 2018-3-19 09:13:21

#include <array.au3>
$text = '一把剑和|一把刀|4646545|aklkf|计算器|AutoIt 脚本编辑器|西游记|654561255|'
$text = StringRegExpReplace($text,'^(\|?)(\V+?)(\|?),'${2}')
$aAry = StringSplit($text,'|')
_ArrayDisplay($aAry)

qsy666888 发表于 2018-3-19 09:25:41

回复 2# zghwelcome
正则我不会,能完善一下吗?怎么用
msgbox(0,'数组',$a1 & $a2 & $a3 & $a4 & $a5 & $a6 & $a7& $a8)表示

qsy666888 发表于 2018-3-19 09:31:16

回复 2# zghwelcome

谢谢谢谢

131738 发表于 2018-3-19 09:52:08

这个用正则有点夸张了

hnfeng 发表于 2018-3-19 09:59:00

#include <Array.au3>
$text = '一把剑和|一把刀|4646545|aklkf|计算器|AutoIt 脚本编辑器|西游记|654561255'
$a_Text=StringSplit ( $text, "|")
_ArrayDisplay($a_Text)

zghwelcome 发表于 2018-3-19 15:21:47

本帖最后由 zghwelcome 于 2018-3-19 15:29 编辑

正则替换是去掉字符串首尾的符号|,以防字符串进来的时候不规范,如: asfddsf|asfd|asdf|,这时候不去掉末尾的 | ,用stringsplit就会有空值进入数组#include <array.au3>
$text = '一把剑和|一把刀|4646545|aklkf|计算器|AutoIt 脚本编辑器|西游记|654561255|'
$text = StringRegExpReplace($text,'^(\|?)(\V+?)(\|?),'${2}')
$aAry = StringSplit($text,'|')
Local $sOutStr = ''
For $i = 1 To $aAry
        Assign('a' & $i,$aAry[$i],2)
        $sOutStr = $sOutStr & '$a' & $i & '=' & Eval('a' & $i) & ' '
Next
MsgBox(0,$aAry,$sOutStr)

qsy666888 发表于 2018-3-19 16:04:38

回复 7# zghwelcome

谢谢兄弟,正则方面我一点都不懂
页: [1]
查看完整版本: 字符串拆分问题(已解决)