awfymwvf 发表于 2010-6-3 14:15:30

有没有函数可以删除一组字符串中指定字符后面的所有字符?

本帖最后由 awfymwvf 于 2010-6-4 08:07 编辑

比如说有一组字符串是“我们都是好人[真的]awbc33a2哈哈CC”

我现在想只保留“我们都是好人[真的]”这样的字符,也就是“]”后面的字符串都删除,但是“]”后面的字符串长度不是固定的,有可能长,也有可能很短,有没有函数可以一次删除“]”后面的所有字符呢?

谢谢大家了

实践证明,正则表达式很难理解,但是很有用

在这里谢谢所有帮助过我的人

kxing 发表于 2010-6-3 16:56:44

本帖最后由 kxing 于 2010-6-3 17:00 编辑

简单的写了个,看看适合你不.
$Str=_DelEndStr("我们都是好人[真的]awbc33a2哈哈CC","我们都是好人[真的]")
msgbox(0,'',$Str)

Func _DelEndStr($String,$InStr)
$Mark=StringInStr($String,$InStr)
$NewStr=StringLeft($String,$Mark+StringLen($InStr)-1)
Return $NewStr
EndFunc

3mile 发表于 2010-6-3 17:58:39

stringregexp("我们都是好人[真的]awbc33a2哈哈CC",'.+]',3)

kxing 发表于 2010-6-3 19:27:24

ls的不可靠,而且还牵扯到数组。

afan 发表于 2010-6-3 19:43:11

$Str = '我们都是好人[真的]awbc33a2哈哈CC'
Msgbox(0, 0, StringRegExpReplace($str, '(?<=\]).*', ''))

awfymwvf 发表于 2010-6-4 08:04:28

几段代码测试了一下,afan版主的代码太强大了,符合我的要求,谢谢afan版主

3mile 发表于 2010-6-4 09:21:02

回复 4# kxing
关数组何事?

kn007 发表于 2010-6-4 09:37:11

支持afan,哎,正则是得学学了

rtytext 发表于 2010-6-4 09:43:32

学习了:face (33):

yarsye 发表于 2010-6-4 10:07:45

正则表达式很难理解

menfan 发表于 2010-6-4 11:58:38

又是正则的强项啊呵呵

Joo 发表于 2010-6-4 13:26:41

额 正则

叹气- -

sxd 发表于 2010-6-5 00:44:32

额 零宽断言
叹气- -

netegg 发表于 2010-6-5 01:51:41

stringtrimright($str, stringlen($str) - stinglen($str1))

lynfr8 发表于 2010-6-5 12:36:17

$Str = '我们都是好人[真的]awbc33a2哈awbc33a哈awbc33aCC'
;Msgbox(0, 0, StringRegExpReplace($str, '(?<=\]).*', ''))
Msgbox(0, 0, StringRegExpReplace($str, '](.*)', ']'))
页: [1] 2
查看完整版本: 有没有函数可以删除一组字符串中指定字符后面的所有字符?