找回密码
 加入
搜索
查看: 3196|回复: 6

[系统综合] [已解决]如何以数字与文字的交界为分割点,分段读取字符?

  [复制链接]
发表于 2012-7-29 15:06:08 | 显示全部楼层 |阅读模式
本帖最后由 alomoi 于 2012-7-29 18:03 编辑

现在有这么一段内容
张三30.44李四54王五24.1赵六545李小四121.27
需要以数字与文字的交界处为分割点,分段读取内容,最后达到如下的效果
张三30.44
李四54
王五24.1
赵六545
李小四121.27
问题在于文字和数字的内容及长度均不固定,纠结了好久实在想不到要怎么样才能取到数字结束文字开始的交界处作为分割点。
求各位前辈指教m(_ _)m
发表于 2012-7-29 17:05:15 | 显示全部楼层
没明白,不过正则应该可以
发表于 2012-7-29 17:28:36 | 显示全部楼层
#include <Array.au3>
Local $Str = '张三30.44李四54王五24.1赵六545李小四121.27' & @CRLF
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '[\x{4e00}-\x{9fa5}]+\w+[\.\w]+', 3)
If Not @Error Then _ArrayDisplay($Test)
回复 1# alomoi
 楼主| 发表于 2012-7-29 17:45:51 | 显示全部楼层
回复 3# xms77

问题解决,感谢前辈指点m(_ _)m
方便的话能否简单注解下前辈写的正则表达式?以便学习w
发表于 2012-7-29 20:09:37 | 显示全部楼层
回复 4# alomoi
最好用‘[\x{4e00}-\x{9fa5}]+\d+[\.\d]+’
[\x{4e00}-\x{9fa5}]+  表示多个中文字符
\d+  表示多个数字
[\.\d]+  表示多个可以是"."也可以是数字
 楼主| 发表于 2012-7-29 20:57:56 | 显示全部楼层
回复  alomoi
最好用‘[\x{4e00}-\x{9fa5}]+\d+[\.\d]+’
[\x{4e00}-\x{9fa5}]+  表示多个中文字符
\d+ ...
xms77 发表于 2012-7-29 20:09


感谢指点m(_ _)m
正则这东西如果没有资料的话看起来完全就是天书T T
发表于 2018-10-17 05:45:28 | 显示全部楼层
練習
StringRegExp($str, '([^\d.]+[\d.]+)', 3)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-22 09:43 , Processed in 0.075188 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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