在一个字符串中如何截取到另一个字符串?
字符串为“IP: 222.27.50.*2011-02-16 17:38:04test001”该字符串中的IP地址和日期都是随机的,我现在想截取到日期后的字符串test001,该如何实现呢? 如果test001在这个字符串最右边的话, 而且长度固定为7位的话, 可以用Right函数来实现。
不知LZ所取的"test001"是不是固定长度的? 回复 2# shingo0109
非常感谢你的回答··
test001不是个固定的长度··我难就难在这儿,不知道如何截取,不知道您还有什么高见···期待您的回答 用正则表达式:++ 回复 4# gezhirong
谢谢您的回答,能再具体一些吗?我想到了正则,但是我不太会用··· Function reg(str1)
Set regex=new RegExp
regex.pattern="++"
regex.ignorecase=true
regex.global=true
Set matchs=regex.execute(str1)
For each match in matchs
msgbox match
Next
End Function
str="IP: 222.27.50.*2011-02-16 17:38:04test001"
reg(str) ls的回答是要保证lz要取的那个"test001"一定是以n个小写字母开头,后面跟着m个数字的字符串,具体的正则表达式需要lz分析目标字符串的变化范围才能确定下来 字符串中的IP地址和日期都是随机的,但是可以发现不管怎么变,字符串中都存在同一个字符":",且出现3次后就可以找到需要截取的字符串。还要考虑截取的所需字符串也可能出现":",实现的脚本如下:
Dim str : str = "IP: 222.27.50.*2011-02-16 17:38:04test001"
For i = 1 to len(str)
If Mid(str,i,1) = ":" Then
j = j+1
If j = 3 Then
Exit for
End If
End If
Next
str_search = Right(str,len(str)-i-2) 同楼上方法差不多, 也是根据“:”来用正则表达式, 代码如下:
strng="IP: 222.27.50.*2011-02-16 17:38:04test001"
patrn=":"+""
a= regtest(strng,patrn)
bb=Right(strng, Len(strng)-InStr(1,strng,a)-2)
MsgBox "bb="&bb
Function regtest(strng,patrn)
Set regex=new regexp
regex.pattern=patrn
regex.global=true
regex.ignorecase=true
set matches=regex.execute(strng)
For each match in matches
regtest=match
Next
End Function a="IP: 222.27.50.*2011-02-16 17:38:04test001"
b=split(a,":")
c=Mid(b(3),3,Len(b(3)))
MsgBox c Function reg(str1)
Set regex=new RegExp
regex.pattern=":.*"
regex.ignorecase=true
regex.global=true
Set matchs=regex.execute(str1)
For each match in matchs
msgbox (mid(match,7))
Next
End Function
str="IP: 222.27.50.*2011-02-16 17:38:04y444444trwetrwe4001"
reg(str) 非常感谢各位的大力帮助!!!
每个人的都写的很好,我试了几个,都很好,非常感谢啊···
页:
[1]