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

[AU3基础] 请问INI怎么用正则写入指定第几|后面,和读取|前|中间|后的内容。求谢了!(已解决)

[复制链接]
发表于 2012-12-18 20:14:11 | 显示全部楼层 |阅读模式
本帖最后由 cfs43210 于 2012-12-18 22:49 编辑

[dit]
001=大成|192.168.1.1|电话号码|中文字|宽带帐号|宽带密码
 楼主| 发表于 2012-12-18 21:19:45 | 显示全部楼层
本帖最后由 cfs43210 于 2012-12-18 21:53 编辑

$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 3)

For $i = 0 To UBound($array) - 1
    MsgBox(0, "正则测试 标志值 3 - " & $i, $array[$i])
Next
这个读例子类似,但是搞来搞去高不定。
| 或(or). 可以匹配|前的字符也可以匹配|之后的字符. 这个帮助不知道是怎么用。有大侠告诉我吗?
发表于 2012-12-18 22:37:39 | 显示全部楼层
回复 2# cfs43210


    帮助的例子不适合你要处理的数据.
你读取了配置内容后,直接用StringSplit处理更好吧.
当然,用正则也能实现,但似乎也蛮'曲折'的.
#include<array.au3>
Local $str = '[dit]' & @CRLF & '001=大成|192.168.1.1|电话号码|中文字|宽带帐号|宽带密码'
Local $i = 5 ; 0 到 5 可选,依次显示对应位置文字
$r = StringRegExp($str, '001=(?:[^\|=]+\|){' & $i & '}([^\|]+)(?:\|?[^\|=]+\|?){' & (5- $i) & '}', 3)
_ArrayDisplay($r)


帮助里说的: | 或(or). 可以匹配|前的字符也可以匹配|之后的字符.
这不能用于1楼你要处理的数据, 完全不同一个概念.
正则里的 | 字符是个元字符,当你要处理这字符时, 不能直接引用, 必须在正则里用 \| 来引用, 比如上面例子.
下面举个or意思的例子:
#include<array.au3>
Local $str = '[dit]' & @CRLF & '001=大成|192.168.1.1|电话号码|中文字|宽带帐号|宽带密码'

$r = StringRegExp($str, '\d+|[[:alpha:]]+', 3) ; | 元字符使用, 捕获1个或(or)多个的字母或数字组合
_ArrayDisplay($r)
 楼主| 发表于 2012-12-18 22:48:32 | 显示全部楼层
回复 3# user3000
谢谢!用StringSplit解决了。。。
发表于 2012-12-25 14:56:27 | 显示全部楼层
非常需要哦 。。。谢谢了啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 08:46 , Processed in 0.075365 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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