来也语法备忘-按关键字提取

财务凭证中有一个文本,它的内容如下:“携程机票住宿费用2月等,GZ250250250”,我想把“GZ250250250”取出来,代码如下:




				s = value[1]
				s_JZZF = KEY_JZZF(s)
				
				s = value[1]
				s_BX = KEY_BX(s)
				
				s = value[1]
				s_ZD = KEY_ZD(s)
				
				s = value[1]
				s_CL = KEY_CL(s)
				
				s = value[1]
				s_GZ = KEY_GZ(s)
				
				s = value[1]
				s_JK = KEY_JK(s)
				
				s = value[1]
				s_ZJHB = KEY_ZJHB(s)
								
				
				
				// --------刘欣用关键字识别----
				If  s_JZZF <> 0 	
					MKcode = s_JZZF 
				Else   
					
					If   s_BX <> 0 	     
						MKcode = s_BX         
					Else
						
						If   s_ZD <> 0 	     
							MKcode = s_ZD
						Else
							
							If   s_CL <> 0 	     
								MKcode = s_CL
							Else
								
								If   s_GZ <> 0 	     
									MKcode = s_GZ
								Else
									
									If   s_JK <> 0 	     
										MKcode = s_JK
									Else
										
										If   s_ZJHB <> 0 	     
											MKcode = s_ZJHB
										Else
											
										End If
									End If
								End If
							End If
						End If
					End If
				End If
				
				// 把每克单号的 - 后面去掉
				iRet = InStr(MKcode,"-",1,False)
				If iRet <> 0 // 如果有,才去保留左边
					
					MKcode = Left(MKcode,InStr(MKcode,"-",1,False) - 1)
					
				End If
				



//-------------------刘欣

Function KEY_ZJHB(s)
	
	ZJHB_iRet = InStr(s,"ZJHB",1,False) //查找字符串,返回位置 
	ZJHB_sRet = StrGetAt(s,ZJHB_iRet + 4 ) //去关键字后的一个字符
	ZJHB_isOK = IsSpecificStr(ZJHB_sRet,"number") // 测试这个字符是不是数字
	ZJHB_endRet = right(s, (Len(s) - ZJHB_iRet + 1) ) //总长度减去左边的,剩下右边的字符
	
	If ZJHB_isOK = True And ZJHB_iRet <> 0
		Return ZJHB_endRet
	Else
		Return 0
	End If    
	
End Function

Function KEY_JK(s)
	
	JK_iRet = InStr(s,"JK",1,False) //查找字符串,返回位置 
	JK_sRet = StrGetAt(s,JK_iRet + 2) //去关键字后的一个字符
	JK_isOK = IsSpecificStr(JK_sRet,"number") // 测试这个字符是不是数字
	JK_endRet = right(s, (Len(s) - JK_iRet + 1) ) //总长度减去左边的,剩下右边的字符
	
	If JK_isOK = True And JK_iRet <> 0
		Return JK_endRet
	Else
		Return 0
	End If    
	
End Function

Function KEY_GZ(s)
	
	GZ_iRet = InStr(s,"GZ",1,False) //查找字符串,返回位置 
	GZ_sRet = StrGetAt(s,GZ_iRet + 2) //去关键字后的一个字符
	GZ_isOK = IsSpecificStr(GZ_sRet,"number") // 测试这个字符是不是数字
	GZ_endRet = right(s, (Len(s) - GZ_iRet + 1) ) //总长度减去左边的,剩下右边的字符
	
	If GZ_isOK = True And GZ_iRet <> 0
		Return GZ_endRet
	Else
		Return 0
	End If    
	
End Function


Function KEY_CL(s)
	
	CL_iRet = InStr(s,"CL",1,False) //查找字符串,返回位置 
	CL_sRet = StrGetAt(s,CL_iRet + 2) //去关键字后的一个字符
	CL_isOK = IsSpecificStr(CL_sRet,"number") // 测试这个字符是不是数字
	CL_endRet = right(s, (Len(s) - CL_iRet + 1) ) //总长度减去左边的,剩下右边的字符
	
	If CL_isOK = True And CL_iRet <> 0
		Return CL_endRet
	Else
		Return 0
	End If    
	
End Function

Function KEY_JZZF(s)
	
	JZZF_iRet = InStr(s,"JZZF",1,False) //查找字符串,返回位置 
	JZZF_sRet = StrGetAt(s,JZZF_iRet + 4) //去关键字后的一个字符
	JZZF_isOK = IsSpecificStr(JZZF_sRet,"number") // 测试这个字符是不是数字
	JZZF_endRet = right(s, (Len(s) - JZZF_iRet + 1) ) //总长度减去左边的,剩下右边的字符
	
	If JZZF_isOK = True And JZZF_iRet <> 0
		Return JZZF_endRet
	Else
		Return 0
	End If    
	
End Function

Function KEY_BX(s)
	
	BX_iRet = InStr(s,"BX",1,False) //查找字符串,返回位置 
	BX_sRet = StrGetAt(s,BX_iRet + 2) //去关键字后的一个字符
	BX_isOK = IsSpecificStr(BX_sRet,"number") // 测试这个字符是不是数字
	BX_endRet = right(s, (Len(s) - BX_iRet + 1) ) //总长度减去左边的,剩下右边的字符
	
	If BX_isOK = True And BX_iRet <> 0
		Return BX_endRet
	Else
		Return 0
	End If    
	
End Function


Function KEY_ZD(s)
	
	ZD_iRet = InStr(s,"ZD",1,False) //查找字符串,返回位置 
	ZD_sRet = StrGetAt(s,ZD_iRet + 2) //去关键字后的一个字符
	ZD_isOK = IsSpecificStr(ZD_sRet,"number") // 测试这个字符是不是数字
	ZD_endRet = right(s, (Len(s) - ZD_iRet + 1) ) //总长度减去左边的,剩下右边的字符
	
	If ZD_isOK = True And ZD_iRet <> 0
		Return ZD_endRet
	Else
		Return 0
	End If    
	
End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值