;取子串,$start开始位置 $end结束位置
func subString($str, $start, $end)
return J_String($str, "取子串", $start & "," & ($end - $start + 1))
EndFunc ;==>subString
;取左子串
func leftString($str, $count)
return J_String($str, "取左子串", $count)
EndFunc ;==>leftString
;取右子串
func rightString($str, $count)
return J_String($str, "取右子串", $count)
EndFunc ;==>rightString
;字符长度
Func lengthString($str)
return J_String($str, "长度", "")
EndFunc ;==>lengthString
;查找指定字符所在位置
Func indexOf($str, $findStr)
return J_String($str, "是否包含", $findStr)
EndFunc ;==>indexOf
;删除头尾部的空格
Func trimString($str)
$length = lengthString($str)
;删除尾部的空白
for $i = $length to 1 step -1
$curString = subString($str, $i, $i)
;J_LOG($curString & "," & J_EXP($curString, "\s"))
if lengthString(J_EXP($curString, "\s")) > 0 Then
$str = subString($str, 1, $i - 1)
Else
ExitLoop
EndIf
Next
;删除头部的空白
while True
$length = lengthString($str)
$curString = subString($str, 1, 1)
if lengthString(J_EXP($curString, "\s")) > 0 Then
$str = subString($str, 2, $length)
Else
ExitLoop
EndIf
WEnd
Return $str
EndFunc ;==>trimString
Func Mbox($msg)
J_MsgBox($msg)
EndFunc ;==>Mbox
;反转给定的字符串
Func StrReverse($str)
;获取字符串长度
$length = J_String($str, "长度", "")
;定义用来盛放新字符串的变量
$nstr = ""
;反转字符串
for $i = $length to 1 step -1
$nstr = $nstr & J_String($str, "取子串", $i & "," & 1)
next
;返回结果
return $nstr
EndFunc ;==>StrReverse
Func lastIndexOf($str, $findStr)
;反转字符串
$nstr = StrReverse($str)
;获取字符串总长度
$length = J_String($str, "长度", "")
;获取指定字符串在反转后的字符串中的位置
$loc = J_String($nstr, "是否包含", $findStr)
;根据情况处理返回值
if $loc = 0 Then
Return 0
Else
return $length - $loc + 1
EndIf
EndFunc ;==>lastIndexOf
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在不同的数据库或数据处理系统中,提取字符串子串的功能可以通过多种函数实现,如nlssort
、substr
、pg_catalog.substrb
、STR_HASH
以及标准的SUBSTRING
和SUBSTR
函数。针对您提供的自定义函数示例subString($str, $start, $end)
,其目的是从字符串$str
中提取从位置$start
到$end
的子串。这里我们可以借鉴上述知识库中的几种函数用法来设计一个简化的逻辑。
如果您是在支持标准SQL的环境中操作,可以采用如下方式实现您的需求:
CREATE FUNCTION subString(text, integer, integer) RETURNS text AS $$
BEGIN
RETURN SUBSTRING($1 FROM $2 FOR $3);
END;
$$ LANGUAGE plpgsql;
说明: - 使用SUBSTRING(str FROM start FOR length)
格式,其中str
是要处理的字符串,start
是起始位置(大多数数据库中起始位置为1),length
是要提取的字符数。 - 这个函数将从$str
的第$start
个字符开始,提取$end - $start + 1
个字符长度的子串(注意计算长度时应考虑结束位置是否包含的问题)。
$start
和$end
的值合法,即$start
应大于0且$end
不超过字符串长度。$end
小于$start
时,可能需要返回空字符串或调整参数逻辑以避免错误。假设您正在PostgreSQL这样的数据库环境中,可以直接调用内置的SUBSTRING
函数而无需自定义函数,示例如下:
SELECT SUBSTRING('Hello, World!', 7, 5); -- 返回 "World"
SUBSTRING
函数用法,以及特定于系统的变体如Oracle的Orafce插件中的substr
函数和PolarDB-X的STR_HASH
函数介绍,这些提供了处理字符串的不同视角和场景应用。通过上述方法,您可以根据所处的具体技术环境选择合适的函数实现来满足提取子串的需求。