回复 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)
|