请问INI怎么用正则写入指定第几|后面,和读取|前|中间|后的内容。求谢了!(已解决)
本帖最后由 cfs43210 于 2012-12-18 22:49 编辑001=大成|192.168.1.1|电话号码|中文字|宽带帐号|宽带密码 本帖最后由 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). 可以匹配|前的字符也可以匹配|之后的字符. 这个帮助不知道是怎么用。有大侠告诉我吗? 回复 2# cfs43210
帮助的例子不适合你要处理的数据.
你读取了配置内容后,直接用StringSplit处理更好吧.
当然,用正则也能实现,但似乎也蛮'曲折'的.
#include<array.au3>
Local $str = '' & @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 = '' & @CRLF & '001=大成|192.168.1.1|电话号码|中文字|宽带帐号|宽带密码'
$r = StringRegExp($str, '\d+|[[:alpha:]]+', 3) ; | 元字符使用, 捕获1个或(or)多个的字母或数字组合
_ArrayDisplay($r) 回复 3# user3000
谢谢!用StringSplit解决了。。。 非常需要哦 。。。谢谢了啊
页:
[1]