找回密码
 加入
搜索
查看: 639|回复: 4

[网络通信] 字符串排序问题【已解决】

[复制链接]
发表于 2022-6-22 12:02:13 | 显示全部楼层 |阅读模式
本帖最后由 redapple2008 于 2022-6-22 19:24 编辑
[/pre][pre]### 友情提示:本脚本由 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) - 1  Step 2
                 $zfc = "'" &$Array[$i]&"=>"&  $Array[$i+1]&"',"
        ConsoleWrite($zfc)
        Next
EndIf
最后的效果是下面的样子就行。
1=>"流程管理",6=>"文档中心",11=>"内部邮件",14=>"外部邮件",26=>"日程计划",32=>"考勤管理",37=>"费控管理",43=>"手机短信",44=>"客户管理",434=>"假期管理",
发表于 2022-6-22 12:21:50 | 显示全部楼层
#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 To  UBound($ARRAY)-1
        If Number(StringRegExp($Array[$n], '\d+', 1)[0]) > Number(StringRegExp($Array[$n1], '\d+', 1)[0]) Then
                $temp = $Array[$n1]
                $Array[$n1] = $Array[$n]
                $Array[$n] = $temp
        EndIf
Next
Next

_ArrayDisplay($Array,'$Array')

这样行不
 楼主| 发表于 2022-6-22 17:22:50 | 显示全部楼层

你的代码没问题,但我的问题好像是读数组有问题。谢谢热心回复。
发表于 2022-6-22 18:31:13 | 显示全部楼层
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) - 1  Step 2
                 $zfc &= "'" &$Array[$i]&"=>"&  $Array[$i+1]&"',"
        ConsoleWrite($zfc)
        Next
EndIf

$Array=StringSplit($zfc,',')
_ArrayDisplay($Array,'$zfc')

For $n=1 To $Array[0]-1
        For $n1 = $n + 1 To  $Array[0]-1
        If Number(StringRegExp($Array[$n], '\d+', 1)[0]) > Number(StringRegExp($Array[$n1], '\d+', 1)[0]) Then
                $temp = $Array[$n1]
                $Array[$n1] = $Array[$n]
                $Array[$n] = $temp
        EndIf
Next
Next

_ArrayDisplay($Array,'$Array')
 楼主| 发表于 2022-6-23 08:16:57 | 显示全部楼层

十分感谢,我的错误找到了,原来是变量没定义,所以一直没正确运行。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-20 13:46 , Processed in 0.071492 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表