找回密码
 加入
搜索
查看: 2182|回复: 9

正则表达式问题请教

[复制链接]
发表于 2008-10-28 15:13:00 | 显示全部楼层 |阅读模式
类似以下的字符串,以数字开头,逗号后跟字母:
10,Displ.,Reaction,
24,Prog,Design,VSH,
134,Rigid,+Z;,Rigid,Y,
使用StringRegExpReplace函数使从第二个以后的所有逗号全部替换为空格。如下:
10,Displ.  Reaction
24,Prog  Design  VSH
134,Rigid  +Z;  Rigid Y
请问这个正则表达式如何写呢?
发表于 2008-10-28 15:42:21 | 显示全部楼层

$string = StringRegExpReplace('10,Displ.,Reaction,', ',', ' ', 0)
$string = StringRegExpReplace($string, ' ', ',', 1)
MsgBox(0,'',$string)
发表于 2008-10-28 15:45:15 | 显示全部楼层
对正则不是很熟悉,
可以试试用StringSplit拆分后再重组.
 楼主| 发表于 2008-10-28 17:41:53 | 显示全部楼层
用StringSplit是个不错的主意,我已经试过了,能够满足要求
 楼主| 发表于 2008-10-28 17:43:41 | 显示全部楼层
liongodmien 回答过我的很多帖子,多谢
发表于 2008-10-28 19:39:00 | 显示全部楼层
  对于LZ在这的问题,用字符替换(StringRegExpReplace()或StringReplace()),可以比较容易的得到结果,而不用分解再组合,对同一问题可以用多个函数解决,但一般应该用比较容易的那个解决,这样程序的运算速度也比较的快!
发表于 2008-10-28 21:10:15 | 显示全部楼层
$string = StringRegExpReplace('10,Displ.,Reaction,', '(\D),', '\1 ')
MsgBox(0,'',$string)
发表于 2008-10-28 22:27:20 | 显示全部楼层
首先替换所有,成为空格,再替换所有数字编号后的第一个空格为,
...我就想了这个蠢办法...
 楼主| 发表于 2008-10-29 08:20:14 | 显示全部楼层
越来越精妙了,多谢
发表于 2008-10-29 08:48:49 | 显示全部楼层
凑凑热闹...

把第一个,和后面的字符替换成'':
MsgBox(0,'',StringRegExpReplace("10,Displ.,Reaction",",(.*)",""));
下面这个是把第一个,前的字符取出:
MsgBox(0,'',StringRegExpReplace("10,Displ.,Reaction","^([^,]*).*","\1"));
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-16 16:39 , Processed in 0.081921 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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