向各位同学求助一个关于提取au3脚本变量的问题.(已解决)
本帖最后由 tubaba 于 2016-4-18 09:56 编辑如何才能正确提取au3脚本中的变量呢?包括此变量的赋值.想了快一个月了,还是没想出来.所以没办法才来发贴求助.Global $aKeyWord = StringSplit($KeyWordStr, ',', 2)
Global $aFuncs, $aALLFuncs
Global Const $tagNMSELCHANGE = $tagNMHDR & _
";struct;word BegYear;word BegMonth;word BegDOW;word BegDay;word BegHour;word BegMinute;word BegSecond;word BegMSeconds;endstruct;" & _
"struct;word EndYear;word EndMonth;word EndDOW;word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds;endstruct"
Global Const $FILE_SHARE_DELETE = 0x00000004
Global Const $FILE_SHARE_READWRITE = BitOR($FILE_SHARE_READ, $FILE_SHARE_WRITE)
Global Const $FILE_SHARE_ANY = BitOR($FILE_SHARE_READ, $FILE_SHARE_WRITE, $FILE_SHARE_DELETE)比如上面的代码,想依次提取每个变量的值.
$aKeyWord = StringSplit($KeyWordStr, ',', 2)
$aFuncs
$aALLFuncs
$tagNMSELCHANGE = $tagNMHDR & _
";struct;word BegYear;word BegMonth;word BegDOW;word BegDay;word BegHour;word BegMinute;word BegSecond;word BegMSeconds;endstruct;" & _
"struct;word EndYear;word EndMonth;word EndDOW;word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds;endstruct"
$FILE_SHARE_ANY = BitOR($FILE_SHARE_READ, $FILE_SHARE_WRITE, $FILE_SHARE_DELETE)
应该使用什么正则比较好呢 回复 1# tubaba
应该跟afan版主的精简脚本程序的那个精减变量功能差不多,可我想不明白是怎么做到的 本帖最后由 alwaystick 于 2016-4-15 16:54 编辑
回复 1# tubaba
先用我的AutoIt变量提取器把变量提取出来吧。至于赋值,我的工具就做不到了,你可以试试看正则表达式。
下载我的AutoIt变量提取器 简单的/$/w+并不能应付所有情况,考虑过型似变量的字符串包含在文本字符串之内的情况吗 自己解决了.根据逗号的位置来分割变量,在文本字符串内,在小括号内,在中括号内的逗号不做分割依据,找到并替换为其它字符.脚本中剩下的逗号将会是变量分隔的依据.
1.相邻双引号或单引号替换其它符号
2.加入字符串起止标志
3.将起始标志前的成对相邻双引号或成对相邻单引号移动到起始标志后
4.文本字符串内的逗号替换为chr(1)
5.数组中括号内的逗号替换为chr(1)
6.每行第一个(前的逗号替换为chr(4)
7.每行)后(前的逗号替换为chr(4)
8.每行最后一个)后的逗号替换为chr(4)
变量包括它的赋值将会以chr(4)分割.
9.匹配行尾带有& _的连接 (?si)(?=Global).*?\s(\$[^=,]+?)[=,](.+?)(?=$|Global) 練習
Global $String1 = "This is a String, Without anything", $String2 = 'This is a String With "$"', $String3 = "This is a String With $", $String4 = 'This is a String With a "$" by ' & Chr(36) & "'s ASCII Code..."
(\$[^=]+?)=(.+?)(?=, \$|\sby) 練習
(?si)(?=Global).+?(\$.+?)(?=$|Global)
結果
= $aKeyWord = StringSplit($KeyWordStr, ',', 2)
= $aFuncs, $aALLFuncs 這裡失敗,無法分開取
= $tagNMSELCHANGE = $tagNMHDR & _
";struct;word BegYear;word BegMonth;word BegDOW;word BegDay;word BegHour;word BegMinute;word BegSecond;word BegMSeconds;endstruct;" & _
"struct;word EndYear;word EndMonth;word EndDOW;word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds;endstruct"
= $FILE_SHARE_DELETE = 0x00000004
= $FILE_SHARE_READWRITE = BitOR($FILE_SHARE_READ, $FILE_SHARE_WRITE)
= $FILE_SHARE_ANY = BitOR($FILE_SHARE_READ, $FILE_SHARE_WRITE, $FILE_SHARE_DELETE)
页:
[1]