发一个较复杂的字符串截取函数
来源:蓝色理想 发布时间:2009-12-08 16:23:00
这个函数是前几年刚流行小偷程序的时候,偶写来用于小偷程序中截取代码的;
可能有些朋友在我以前的代码中看见过了,但没有写用法,现在把调用方法及使用示例写出来。
也许对有些朋友比较有用吧。
'********************************************************************************
' Function(公有)
' 名称 : 盛飞字符串截取函数
' 作用 : 按指定首尾字符串截取内容(本函数为从左向右截取)
' 参数 : sContent ---- 被截取的内容
' sStart ------ 首字符串
' iStartNo ---- 当首字符串不是唯一时取第几个
' bIncStart --- 是否包含首字符串(1/True为包含,0/False为不包含)
' iStartCusor - 首偏移值(指针单位为字符数量,左偏用负值,右偏用正值,不偏为0)
' sOver ------- 尾字符串
' iOverNo ----- 当尾字符串不是唯一时取第几个
' bIncOver ---- 是否包含尾字符串((1/True为包含,0/False为不包含)
' iOverCusor -- 尾偏移值(指针单位为字符数量,左偏用负值,右偏用正值,不偏为0)
'********************************************************************************
Public Function SenFe_Cut(sContent, sStart, iStartNo, bIncStart, iStartCusor, sOver, iOverNo, bIncOver, iOverCusor)
If sContent<>"" Then
Dim iStartLen, iOverLen, iStart, iOver, iStartCount, iOverCount, I
iStartLen = Len(sStart) '首字符串长度
iOverLen = Len(sOver) '尾字符串长度
'首字符串第一次出现的位置
iStart = InStr(sContent, sStart)
'尾字符串在首字符串的右边第一次出现的位置
iOver = InStr(iStart + iStartLen, sContent, sOver)
If iStart>0 And iOver>0 Then
If iStartNo < 1 Or IsNumeric(iStartNo)=False Then iStartNo = 1
If iOverNo < 1 Or IsNumeric(iOverNo)=False Then iOverNo = 1
'取得首字符串出现的次数
iStartCount = UBound(Split(sContent, sStart))
If iStartNo>1 And iStartCount>0 Then
If iStartNo>iStartCount Then iStartNo = iStartCount
For I = 1 To iStartNo
iStart = InStr(iStart, sContent, sStart) + iStartLen
Next
iOver = InStr(iStart, sContent, sOver)
iStart = iStart - iStartLen '还原默认状态:包含首字符串
End If
'取得尾字符串出现的次数
iOverCount = UBound(Split(Mid(sContent, iStart + iStartLen), sOver))
If iOverNo>1 And iOverCount>0 Then
If iOverNo>iOverCount Then iOverNo = iOverCount
For I=1 To iOverNo
iOver = InStr(iOver, sContent, sOver) + iOverLen
Next
iOver = iOver - iOverLen '还原默认状态:不包含尾字符串
End If
If CBool(bIncStart)=False Then iStart = iStart + iStartLen '不包含首字符串
If CBool(bIncOver) Then iOver = iOver + iOverLen '包含尾字符串
iStart = iStart + iStartCusor '加上首偏移值
iOver = iOver + iOverCusor '加上尾偏移值
If iStart<1 Then iStart = 1
If iOver<=iStart Then iOver = iStart + 1
'按指定的开始和结束位置截取内容
SenFe_Cut = Mid(sContent, iStart, iOver - iStart)
Else
'SenFe_Cut = sContent
SenFe_Cut = "没有找到您想要的内容,可能您设定的首尾字符串不存在!"
End If
Else
SenFe_Cut = "没有内容!"
End If
End Function
使用示例:


猜你喜欢
- jupyter notebook 自定义python解释器jupyter notebook 和虚拟环境的好处就不多废话了jupyter no
- 本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下基于列表存储的学生管理系统,实现如下功能==========
- 最近在做人脸识别清洗样本的工作,发现经过人脸对齐后存在部分图片十分模糊,所以用opencv滤了一下。原理就是使用了cv2.Laplacian
- Laravel通过传统的登录表单已经让用户认证变得很简单,但是API怎么办?API通常使用token进行认证并且在请求之间不维护sessio
- 1:readline()file = open("sample.txt") while 1: line =
- 一、柱形图介绍(1)介绍柱状图(Histogram),也称条图(英文:bargraph)、长条图(英文:barchart)、条状图(Bar
- 本文实例讲述了python使用Tkinter显示网络图片的方法。分享给大家供大家参考。具体实现方法如下:''' tk
- vscode中安装ms-vscode.go插件后可以开启对go语言的支持,ms-vscode.go插件需要依赖一些工具,安装完成后提示goc
- 第一步 : 从清华大学开源软件镜像站下载Anaconda:https://mirrors.tuna.tsinghua.edu.cn/anac
- django在admin后台注册自己创建的数据库表,这样我们就可以在admin后台看到表结构信息,我们就可以在admin后台快速录入表记录信
- 前言若电脑之前已经安装过vue-cli了,但是版本过低,比方说当前vue-cli的版本为2.9.6,然后我想升级到vue-cli的最新版本4
- 1 自动化测试自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为
- 一、绑定class属性的方式1、通过数组的方式,为元素绑定多个class<style> .red {
- 1、更新整张表,如果某一行数据的某一列的值为空,那么让他和另一列字段的值相等UPDATE ot_tgbz set update_day=if
- 开发一个相机应用,需要申请三个权限:相机、读文件、写文件。1、在AndroidManifest.xml中添加<uses-permiss
- 才发现做了这么多的博客和视频,居然从来没有系统地做过分类网络,做一个科学的分类网络,对身体好。源码下载分类网络的常见形式常见的分类网络都可以
- 1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PH
- 放大镜并不是一个难以实现的效果, 只是因为牵涉到一些精确的数值计算, 显得比较繁琐. 在未来的一段日子, 我会不定期地写关于 JavaScr
- 本文实例讲述了python中xrange用法。分享给大家供大家参考。具体如下:先来看如下示例:>>> x=xrange(0
- Python使用Try Exception来处理异常机制 若Exception中有Try对应的异常处理,则Try - exception之后