字符串排序问题【已解决】
本帖最后由 redapple2008 于 2022-6-22 19:24 编辑### 友情提示:本脚本由 Au3 正则测试工具 于 2022年06月22日17点18分51秒 自动生成,不保证其正确性,请自行修改测试 ###
#include <Array.AU3>
$string = _
'{"menu_id":1,"menu_name":"流程管理","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":6,"menu_name":"文档中心","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":11,"menu_name":"内部邮件","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":14,"menu_name":"外部邮件","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":26,"menu_name":"日程计划","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":32,"menu_name":"考勤管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":434,"menu_name":"假期管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":37,"menu_name":"费控管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":43,"menu_name":"手机短信","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":44,"menu_name":"客户管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"}'
Local $Array = StringRegExp($string, '(\d+).*?(?<="menu_name":")([^"]+)' ,3)
If IsArray($Array) Then
For $i = 0 To UBound($Array) - 1Step 2
$zfc = "'" &$Array[$i]&"=>"&$Array[$i+1]&"',"
ConsoleWrite($zfc)
Next
EndIf最后的效果是下面的样子就行。
1=>"流程管理",6=>"文档中心",11=>"内部邮件",14=>"外部邮件",26=>"日程计划",32=>"考勤管理",37=>"费控管理",43=>"手机短信",44=>"客户管理",434=>"假期管理", #include <Array.au3>
Local $Array=['1=>"流程管理"','6=>"文档中心"','11=>"内部邮件"','14=>"外部邮件"','26=>"日程计划"','32=>"考勤管理"','434=>"假期管理"','37=>"费控管理"','43=>"手机短信"','44=>"客户管理"']
_ArrayDisplay($Array,'$Array')
For $n=0 To UBound($Array)-1
For $n1 = $n + 1 ToUBound($ARRAY)-1
If Number(StringRegExp($Array[$n], '\d+', 1)) > Number(StringRegExp($Array[$n1], '\d+', 1)) Then
$temp = $Array[$n1]
$Array[$n1] = $Array[$n]
$Array[$n] = $temp
EndIf
Next
Next
_ArrayDisplay($Array,'$Array')
这样行不 itzyx 发表于 2022-6-22 12:21
这样行不
你的代码没问题,但我的问题好像是读数组有问题。谢谢热心回复。 redapple2008 发表于 2022-6-22 17:22
你的代码没问题,但我的问题好像是读数组有问题。谢谢热心回复。
;~ ### 友情提示:本脚本由 Au3 正则测试工具 于 2022年06月22日17点18分51秒 自动生成,不保证其正确性,请自行修改测试 ###
#include <Array.AU3>
$zfc=''
$string = _
'{"menu_id":1,"menu_name":"流程管理","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":6,"menu_name":"文档中心","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":11,"menu_name":"内部邮件","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":14,"menu_name":"外部邮件","menu_has_one_flow_module_factory":null,"empower":"is_empower"},{"menu_id":26,"menu_name":"日程计划","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":32,"menu_name":"考勤管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":434,"menu_name":"假期管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":37,"menu_name":"费控管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":43,"menu_name":"手机短信","menu_has_one_flow_module_factory":null,"empower":"no_empower"},{"menu_id":44,"menu_name":"客户管理","menu_has_one_flow_module_factory":null,"empower":"no_empower"}'
Local $Array = StringRegExp($string, '(\d+).*?(?<="menu_name":")([^"]+)' ,3)
If IsArray($Array) Then
For $i = 0 To UBound($Array) - 1Step 2
$zfc &= "'" &$Array[$i]&"=>"&$Array[$i+1]&"',"
ConsoleWrite($zfc)
Next
EndIf
$Array=StringSplit($zfc,',')
_ArrayDisplay($Array,'$zfc')
For $n=1 To $Array-1
For $n1 = $n + 1 To$Array-1
If Number(StringRegExp($Array[$n], '\d+', 1)) > Number(StringRegExp($Array[$n1], '\d+', 1)) Then
$temp = $Array[$n1]
$Array[$n1] = $Array[$n]
$Array[$n] = $temp
EndIf
Next
Next
_ArrayDisplay($Array,'$Array') itzyx 发表于 2022-6-22 18:31
十分感谢,我的错误找到了,原来是变量没定义,所以一直没正确运行。
页:
[1]