【已解决】正则表达式中关于分割 截取多行,问题
本帖最后由 狼兄 于 2015-1-20 19:35 编辑源字符:
zsmj=134
Name= 马
Tip=可以电动不要这样进度r-好人一生平安
zsmj=54336
Name= 小狗
Tip=请发这埯回复
zsmj=989
Name= 龙
Tip=这是一个什么吊的r-东东
要用正则表达式取其[]中的字四个字符,和Name后面的汉字,要求Tip的后面有r-的字符才符合条件,主要不知怎样处理多行,还有就是怎样判断r-在不在其中。
比如我想取其中 U6L8马 顶一下。。。。。。。。。。。。。。。 回复 2# wangms
只顶一下怎么够,解答一下吧。 本帖最后由 半芯竹 于 2015-1-15 15:00 编辑
#include <Array.au3>
Local $file = FileOpen(@ScriptDir&"\1.txt", 0)
If $file = -1 Then Exit
Local $chars = FileRead($file)
If @error = -1 Then Exit
Local $res = StringRegExp($chars,"\w+(?=\].*\s.*\s\w+.*\s.*r-)|[^\x00-\xff].(?=\s.*[^\x00-\xff]+r-)",3)
If Not @error Then _arraydisplay($res,'test')
FileClose($file)
回复 4# 半芯竹
万分感谢,正在看正则表达式的书写,稍后再答复,再次谢了 回复 4# 半芯竹
谢谢,看了你的例子,正则表达式,我依葫画瓢已解我的实际问题,从中学到以下:
1、\s其意思匹配任意空白字符,原来像换行这一类就是空白字类。
2、?=断言原来可以这样用,我以为只是(?=N)这样断字符位置,原来还可在其中形各种条件来用。
3、StringRegExp标志位参数1与3区别,返回匹配的数组和返回全局匹配数组,原来3是可以用来接收
“|”这个或的输出数组,形成排开的数组,如果有多个“|”或条件,则会形同条件的数组列,如例中的
U6L8 134 马 iopp 989 龙。
最后谢谢半芯竹朋友,前天开始接触正则,多谢半芯竹朋友的提点,还请朋友帮看一下我3点理解是不是正确。 第一点正解,第二点也正解。。第三点,不需要"|"它也会返回一个数组。。正则本身返回的,就是一个数组。。我上面写的正则,不是太精简,我也是刚学。像AFAN等高手,应该很能写出更短,更简洁的。。。期待高手给我等学习机会。。 回复 7# 半芯竹
那么标志 1与3是什么区别?
帮助文档中关于stringregexp中解释的全局数组是什么意思 \[(.*)\]\R.*\RName= (.*)\R.*r- 回复 9# shqf
谢谢
页:
[1]