
说是最精确截取长度,其实我也不敢确定是否是最精确的,具体有多精确看下面的效果就知道了:
先上测试用的字符串:
<php
header("Content-Type:text/html;charset=utf-8");
echo
cn_substr_utf8('我是一个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('ai\'2145m
a
ch3我[是一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('我,是一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('我是一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('我是,一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('我,是,一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('我是asd一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('我i\'m[是一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('i\'m
a
ch我[是一,个,和哈,哦也,,国家!',12);
echo
'<br
/>',cn_substr_utf8('i\'2145m
a
ch3我[是一,个,和哈,哦也,,国家!',12);
下面是精确截取字符串的效果图:
具体函数代码如下:
//utf-8中文截取,单字节截取模式
function
cn_substr_utf8($str,$length,$append='',$start=0){
if(strlen($str)<$start+1){
return
'';
}
preg_match_all("//su",$str,$ar);
$str2='';
$tstr='';
//wwwphpernotecom
for($i=0;isset($ar[0][$i]);$i++){
if(strlen($tstr)<$start){
$tstr=$ar[0][$i];
}else{
if(strlen($str2)<$length
+
strlen($ar[0][$i])){
$str2=$ar[0][$i];
}else{
break;
}
}
}
return
$str==$str2$str2:$str2$append;
}
如果大家认为还不够准确大家可以在此基础上进行改进,或者是创新,希望这篇关于php截取字符串长度函数的文章对大家的学习有所帮助。
在Excel中使用比较长的字符串时,可能会遇到需要提取其中某一部分字符串的情况,这时就要用到截取字符串函数了,当然,截取字符串函数有很多
本文主要讲述了其中的一个函数—— LEFT函数 。它的作用是从字符串的最左边开始,截取特定长度的一串字符。
LEFT函数功能
从一个文本字符串的第一个字符开始,截取指定数目的字符
LEFT函数语法
翻译白话格式:
参数说明
Text:是包含要提取字符的文本字符串
Num_chars指定要由LEFT所提取的字符数必须大于或等于0
注意事项:
1如果num_chars大于文本长度,则LEFT返回所有文本
2如果省略num_chars,则假定其为1
LEFT函数使用方法实例
示例1: 经典用法
示例2: 截取某特征前的字符,例如文本长度不一,截取“@”前面的文本内容:
解释: LEFT指定从内容开始处截取,没有指定,即从第一个字符开始;FIND("@",B25)指定从第一位开始截取到"@"为止;-1是指@的前一位如果是截取到"@"前的1为止,那就是-3
合在一起的意思:从第一个字符开始,截取到"@"前一位为止。
你学会了吗?
谢谢大家的观看,我们下一期再见,如果有什么问题欢迎评论区留言或私信我们
想学习更多的函数知识,欢迎关注转发
substring用于截取字符串的某部分,其基本语法为select substring(字符串或者列名,起始位置,截取长度)from表。
Substring的用法
这个函数返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。
该字符串中的每个字符都被认为具有数字位置:第一个字符的位置是 1,第二个字符的位置是 2,依此类推。
如果未指定第三个参数,将返回从第二个参数指定的位置开始直到字符串结尾的子字符串。
如果参数不是字符串类型,将先使用 string() 函数转换为字符串,然后计算该转换的结果。
如:以下函数调用返回“234”: substring("12345",2,3)
substring双语例句The Substring function will extract text from a source string
Substring函数将从一个源字符串中提取文本。
Improved Algorithm for BM String Matching Based on Prefix Substring
基于前缀的BM串匹配改进算法
Scalable Distributed Data Structure for Substring Searching
具有子串检索功能的可扩展分布式数据结构
Returns the index of the first character of a specified substring in a string
返回指定子串首字符在串中的索引。
The length argument specifies the length of the desired substring
长度参数指定了所需子字符串的长度。
1len函数的含义
表示返回文本串的字符数。
2len函数的语法格式
=Len( text)
3如图所示,len函数常常和其他函数结合起来使用。
输入公式=B3+right(C3,LEN(C3)-5)。
使用len函数得出字符串的长度,再用right函数截取字符串。
4注意,空格也是一个字符,所以这里是5。
5注意,len函数中的参数是文本或者表达式的话,要加双引号,且在英文状态下输入。
6len函数常常和其他函数组合起来使用,例如,
如何从身份z号码中提取性别,
如何从身份z号码中提取年龄,
如何从身份z号码中提取出生年月日等都要用到。
bstring 有两种,一种在net中,一种在SQL中。
SQL中:
substring("abcdefg",4,2)
返回的值为:ef
从字符串"abcdefg"中第4位开始取2位。
是net中的:
第二个参数长度。
"abcdefg"substring(4,2)
返回的值为:ef
从字符串"abcdefg"中第4位开始取,取到第2位。
"abcdefg"substring(4)
返回:efg
从字符串"abcdefg"中第4位开始取,取到字符串的尾部。
public String substring(int beginIndex),一般用于返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
CB用法
用途Returns the substring at the specified location within a String object
用法举例
strVariablesubstring(start, end)
"String Literal"substring(start, end)
用法说明:返回一个字串,其中start是起始的index,end是终止的index,返回的字串包含起始index的字符,但是不包含end的字符。这个是string类下的一个method。
-substring
很简单,就是删除最后一个\之前的内容,调试通过的程序代码如下:
#include<stdioh>
voidmain()
{
chars[255],p;
gets(s);
p=s;
while(p)p++;
while(p>s&&p!='\\')p--;
if(p!=s)p++;
puts(p);
}
上面的程序运行结果如下:
F:\newfolder\abctxt
abctxt
直接输入公式“=left(right(a1,6),2)”
关于此公式中用到的“Left”和“right”两个文本函数的相关知识——
LEFT:用来对原始数据进行截取。截取的方式是从第一个字符开始,截取用
户指定长度的内容。
例如:在一个工作表中,某一列的资料是地址,录有省、市、街道等。
如果想插多一列,加入省份的资料,以便进行省份筛选,则可用该函数自动进
行截取,而无需人工输入。
使用语法:
LEFT(text,num_chars)
Text :是包含要提取字符的文本字符串,可以直接输入含有目标文字的单元格名称。
Num_chars :指定要由 LEFT 所提取的字符数,Num_chars 必须大于或等于0。如果
num_chars 大于文本长度,则 LEFT 返回所有文本。如果省略 num_chars,则假定其为1。
RIGHT:截取的方式是从最后一个字符开始,从后往前截取用户指定长度的内
容。
使用语法:
RIGHT(text,num_chars)
Text :是包含要提取字符的文本字符串,可以直接输入含有目标文字的单元格名称。
Num_chars :指定希望 RIGHT 提取的字符数。
注意:Num_chars 必须大于或等于 0。如果 num_chars 大于文本长度,则 RIGHT 返回所有文本。如果忽略 num_chars,则假定其为 1。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)