redapple2008 发表于 2022-6-22 12:02:13

字符串排序问题【已解决】

本帖最后由 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=>"假期管理",

itzyx 发表于 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 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')


这样行不

redapple2008 发表于 2022-6-22 17:22:50

itzyx 发表于 2022-6-22 12:21
这样行不

你的代码没问题,但我的问题好像是读数组有问题。谢谢热心回复。

itzyx 发表于 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) - 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')

redapple2008 发表于 2022-6-23 08:16:57

itzyx 发表于 2022-6-22 18:31


十分感谢,我的错误找到了,原来是变量没定义,所以一直没正确运行。
页: [1]
查看完整版本: 字符串排序问题【已解决】