找回密码
 加入
搜索
查看: 4169|回复: 8

[效率算法] 正则求解!关于匹配换行符或字符结束如何正则表达

  [复制链接]
发表于 2011-7-27 23:09:51 | 显示全部楼层 |阅读模式
657899 *张三李四 324234  53 A567
532424 ST孙李 45345 90899
456767 王张江姚 6544545 646556

比如以上是读取的一段文本,怎么用stringregexp提出这三行字符?
我用的表达式是
$fky=StringRegExp($fky,'\d{6}\s[*ST]{0,}[^\x00-\xff]{1,4}.+\n',3)
可以匹配头两行的文字,最后一行匹配不了(因为最后一行结尾处没有换行符)
望高手指正
发表于 2011-7-27 23:48:01 | 显示全部楼层
不知道你的文件结构,是匹配所有的行?
还是有特定的要求?
$fky=StringRegExp($fky,'.+(?=\n?)',3)
 楼主| 发表于 2011-7-28 08:31:26 | 显示全部楼层

本帖最后由 manlty 于 2011-7-28 09:01 编辑

是将所有前面6个数字一个空格跟着不超过4个中文字然后后面一直到行尾(包括文终)这样的数据提取出来。
发表于 2011-7-28 09:23:45 | 显示全部楼层
是将所有前面6个数字一个空格跟着不超过4个中文字然后后面一直到行尾(包括文终)这样的数据提取出来。
manlty 发表于 2011-7-28 08:31

(包括文终) 这是什么意思呢?
前面6个数字一个空格跟着不超过4个中文字然后后面一直到行尾:(?m)^\d{6}\s[\x{4e00}-\x{9fa5}]{1,4}.*

主要是你的问题提得不清不楚,只能靠猜.
发表于 2011-7-28 10:01:14 | 显示全部楼层
把\n换成$即可
 楼主| 发表于 2011-7-28 16:24:03 | 显示全部楼层
回复 4# 3mile


    你看1楼我给那段示例字符串,如果只考虑转行,最后一行在最后位置没有转行符,提不出来。
所以我说包括转行或者文终
 楼主| 发表于 2011-7-28 16:28:20 | 显示全部楼层
本帖最后由 manlty 于 2011-7-28 16:35 编辑

没有解决,请高手继续
12345 s*老王捕获 serwe.%sfa f56
657899 *张三李四 324234  53 A567
532424 ST孙李 45345 90899
456767 王张江姚 6544545 646556
谁能用stringregexp将上面第二、三、四行提出存入数组?(为什么不要第一行,因为第一行不符合我的要求,就是先6个数字+空格+不超过4个汉字+任意字符直到转行符或者字符串结尾)
发表于 2011-7-28 16:40:54 | 显示全部楼层
\d{6}\h[\*ST]*[\x{4e00}-\x{9fa5}]{1,4}.*
发表于 2011-7-28 16:45:32 | 显示全部楼层
(?m)^\d{6}\s[*ST]*[\x{4e00}-\x{9fa5}]{1,4}.+
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-2 13:51 , Processed in 0.081687 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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