|
本帖最后由 afan 于 2011-12-22 18:31 编辑
字符串为读取的一个ini文件(见附件, 这里下载不会扣除金钱),但该文件非ANSI格式,且大于32767个字符,因此,不要考虑用Au3内置的Ini*函数处理,而使用字符串函数,推荐正则。
要求:
找到所有 字段中在关键字或值中含有“□A”或“○A”或“△A”字符串的行 及其所属的字段名。
为了突出字符,特意使用了比较醒目的“■□○△”,但其实际可以为任意非换行字符。
注意:“■”是为了在结果中醒目才使用的这个字符的(并且在■后加上了数字序号,便于查验),它与要搜索的字符没有必然联系。所以“■”不能出现在表达式中,否则没有练习的意义~
以下贴出部分字符示例:
[ir字■3eGy.]
MLlShehZ1JNq = esSngTmouo
7YxmJutp*erqW = nw字F2ljDw
8tQvYx = wmLwq+Nzp
ODFa_Dn-v = i3B*PCKE*字M/A.HEWg字qKLP5VsfO/ci.L3vD8V,tqbHoA7
WtuVxoSe.\e\HAWHu* = -aO1BZDcNOJN*ssr-_7t\j
wnWhhOMn*iSG\6 = gqW字QTrXv9KyxhvTbMWLYkPLEyu汉b6
Ga?8△Agg = B3XPJSdfLw6Mb0n*S3JsE_J2Ox6+iUN汉8i-ayC
ayd汉jacN字7 = uYG6,CTC6dEho汉K8PhbpH9u,0\g
MqtMv*0RgAF = .dtKN/Tl8qIToR1i7SF1j5W 0tDMcWjNQpIR
LuJNEyp_,N91n?1GN57N = f1△AQWMwmu314uOHqEC0-UfErltq_Gq_oqG
vJ+J?-S2m1CGd6 = jZIZfJDE+u+*0G92/3zRHWO\pxmi+CPQi
CE01WwZu? = lRUNPvE_Q汉49a?WvnMV8pH?E*VUoowKnkzm,?D
g?MEOlxMCht,YvL2x = y7eRtS4b7?0S?.kll6R7tYyn.1oACNj+
h_o6abhQh = xAm7I-xcKm
AIn_ = /6Eb7dp0*Vuzt\iW?zn-bp7+swHR0-daz+.y_cb8IR9bZ.5P4RJ
VK字K5*nq4 = d4o,S_8y.,oov15+-5M7OqWUHI
SClBqn_OyPMTigXsB = S0aI3V7yn4SP5q?a字NJEO/ibwW2,fhms1
T字.\q?F = 78P6QhW\-4t5FG7e
H/EgJHGybSRnNtE9?Rh0 = gRr7汉7ARGbJ*n汉B/INV7
urOLO = VeEXLKP1h9汉FmyG80wR4
GzTd字9K5Ts0j27e5g40y = ?qU5u?.pNL9-BSwOGN-LE*9vRtfFGTr汉,QsvVZ1d*xftDOw
6/zrJs_.A5z = f,\BTA*t8mAYOdAsglAO.
6yCG = Ezo 2YREfhy\aKlZUuDbFcc\TA2ZfKjwu\bI
MWGxqq9T = /6ZOY3h3cX4dSK汉-Ey?r4kz
1DNRT?uCoTy = q3QUdkBfe80CItk_NcfOmq9++
3861BPjD*n-FipA = f-Nzxuj 0/F.IMzAN4qZi
FZRGFl\+/UHddh = bqy字71字/oAlv 4DM6BdFpr6.dQ汉7J字7yWO1X SG_dn
*j5Wh = hO-XE9xn字JM2.字-ePGPyx4MyhT3
RycXYvl汉BI = T*p9XANj6l2Z8/,\LCok92OuTj3bAZ1J6cB
3.7VgI?M = 2R2hZ_mxtMq字wSCbS_kS\idq3Nxt
7LmtSk-FUftJqj2ul qh = T/x\rbzfztHYi\ViAK\CZ汉l_8istKs7xNM\v\stBu/,S-GLD
vrYO7 = 汉xEP7Dk?LRe6MP,IYk\3*-h-91x/N
QGvHvkB xuuH = FG0gXr9o/-V+co35wcee6r0DADsVC,iPCpG
+uf1汉B1V59oWQFWt?F = K.Li1字iMmosxXX9RSEOolcgwnX4/9H
2MlLeSsaS汉kaJ2+ = soTDke2O-dYYL+yc0tGzvCCLmHDKxp3n4gdrcN3v*iHnYMT0VZ
XW4Ky4g5E_zXZR3qzOTC = G,ckr汉5z\NN8X0uGF字xNV+VLkovxjtz23qfZhqbAdm9/8CbQ
xGp9n = -BUVrzL/acGY1 JeMhqaoIuDc汉dtRp/4TvBWPqK*bT1,
RlVb+AJm字IGXW6_ = 字xoS8J7
?I7tk+w\Go*K77r-H = x0eMYT?汉obzBQ
hgl38VyG汉V = i-87mj?x1
m9_F字5H3○A = b?LGE_?cVUvVMUHQ-uYOfV0eSYre8rU?
以上示例需要的结果如下(数组元素或字符串均可):
ir字■3eGy.
Ga?8△Agg = B3XPJSdfLw6Mb0n*S3JsE_J2Ox6+iUN汉8i-ayC
LuJNEyp_,N91n?1GN57N = f1△AQWMwmu314uOHqEC0-UfErltq_Gq_oqG
m9_F字5H3○A = b?LGE_?cVUvVMUHQ-uYOfV0eSYre8rU?
读取附件的字符串需得到的结果如下:
当然,如果没有空行(数组空元素)则更好~
尽量一次正则处理,当然,觉得比较困难的可以分步处理。
也欢迎非正则的处理答案~
为了不影响他人思维,答案请隐藏。
由于字符串较长,为了不影响浏览,答题时请不要直接贴出源字符串,而使用 $str = FileRead('Test_Ini.ini') 代替。
我的题解:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
|