找回密码
 加入
搜索
查看: 8317|回复: 15

[系统综合] 【已解决】求一个正则表达式!多次尝试无法成功!

 火.. [复制链接]
发表于 2014-6-20 12:03:42 | 显示全部楼层 |阅读模式
本帖最后由 hollandmfq 于 2014-6-20 19:08 编辑

例如该字符串: $a=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16
想把1|替换为空
想要的结果为2|3|4|5|6|7|8|9|10|11|12|13|14|15|16
可是用StringReplace($a,"1|","")
替换结果成了2|3|4|5|6|7|8|9|10|112|13|14|15|16

求写个正则能正确区分并替换掉!十分感激!

通过其他方法实现也可以!多谢!
发表于 2014-6-20 12:12:12 | 显示全部楼层
(^|\|)1\|
这样试下
 楼主| 发表于 2014-6-20 12:12:51 | 显示全部楼层
谢谢,马上试试!
 楼主| 发表于 2014-6-20 12:18:23 | 显示全部楼层
如果只替换1|是没有问题的,但是需要替换的是个变量,数据库中提取需要替换的变量,如果变成替换11|,结果就不正确了。同样感谢!
发表于 2014-6-20 12:21:08 | 显示全部楼层
|在正规中表示或者 相当于or  要匹配字符"|"需要用\取消这个特殊字符   也就是"|"用 \| 表示
StringRegExpReplace($a,".*?\|","",1)
 楼主| 发表于 2014-6-20 12:27:25 | 显示全部楼层
回复 5# zch11230


    谢谢,这样也是不对的,结果是把前面的全部都替换成空了!
发表于 2014-6-20 12:36:18 | 显示全部楼层
回复 6# hollandmfq
没太理解清楚你想要的结果   难道不是这个意思么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-6-20 12:49:19 | 显示全部楼层
回复 4# hollandmfq
你牛,都不知道那个1可以替换成任何值吗?
发表于 2014-6-20 17:11:10 | 显示全部楼层
$a = "1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16"
$b = "1|"
;$b="11|"
MsgBox(0, "", StringRegExpReplace($a, "(?m)(?<=^|\|)" & $b & "(?=\d)", ""))
发表于 2014-6-20 18:43:58 | 显示全部楼层
回复 1# hollandmfq
$Str = '1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16'

Local $Test = StringRegExpReplace($Str, '(?m)^\d+', '')

MsgBox(0, 0, $Test)
 楼主| 发表于 2014-6-20 19:07:50 | 显示全部楼层
谢谢各位,个人表达有问题,还不是我想要的结果!
发表于 2014-6-21 07:29:33 | 显示全部楼层
回复 11# hollandmfq


    你是要把 "1|"   替换 成空格 还是
要把 1 个 "|"  替换成空格
还是把 "|" 替换成空格
发表于 2014-6-21 17:37:00 | 显示全部楼层
这个,最后有结果吗?我看了下,觉得7#的应该可以实现你说的效果吧。
发表于 2014-6-22 22:36:29 | 显示全部楼层
本帖最后由 Ycxw2008 于 2014-6-22 22:37 编辑

什么啊,明明很简单的问题啊。
Local $a = '1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16'
MsgBox(0, '', StringRegExpReplace($a,'\b1\|',''))
发表于 2014-6-23 09:23:30 | 显示全部楼层
额,什么的情况。给那些,学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-29 10:47 , Processed in 0.089422 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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