-
php去掉左边指定字符,PHP中字符串删除最左边最右边和两边的空格或指定字符
2021-03-24 01:19:06PHP中字符串删除最左边最右边和两边的空格或指定字符操作函数ltrim、rtrim、trim妙用,以及需要注意的坑截取字符串最左边、最右边、两边指定字符时...之前看网上删除字符串最后一个字符逗号方式是substr()函数,如:...PHP中字符串删除最左边最右边和两边的空格或指定字符操作函数ltrim、rtrim、trim妙用,以及需要注意的坑
截取字符串最左边、最右边、两边指定字符时php中有指定的字符直接拿来用。
之前看网上删除字符串最后一个字符逗号方式是substr()函数,如:<?php
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
这种方式还需要计算字符串截取的长度。
看下ltrim、rtrim、trim三个函数
ltrim() 函数
说明:从字符串左侧移除字符
语法:ltrim(string[,charlist])
参数:
1、string-[必需]规定要检查的字符串。
2、charlist-[可选]规定从字符串中删除哪些字符(默认值:"\0" - NULL;"\t" - 制表符;"\n" - 换行;"\x0B" - 垂直制表符;"\r" - 回车;" " - 空格)
返回值:返回已修改的字符串。
php版本:4+
示例:<?php
// 移除字符串最左边空格
$url = ' https://www.yj521.com/';
echo ltrim($url);
ltrim() 函数
说明:从字符串右侧移除字符
语法、参数等和ltrim() 函数一样。
示例:<?php
// 移除字符串最右边空格
$url = ' https://www.yj521.com/';
echo rtrim($url);
trim() 函数
说明:移除字符串两侧的空白字符或其他预定义字符。
语法、参数等和ltrim() 函数一样。
示例:<?php
// 移除字符串两边空格
$url = ' https://www.yj521.com/ ';
echo trim($url);
其他示例:<?php
// 移除字符串两边.号
$url = '.https://www.yj521.com/.';
echo trim($url,'.');
需要注意的坑:
如果在去除字符串中需要去除指定连续多个字符有时会有问题,具体看示例:$str = 'https://yj521.com/zhl/1.html';
echo trim($str,'.html');
// 输出:ps://yj521.com/zhl/1
比如上边的案例,我们需要去除字符串中的“.html”字符串,通过trim函数时,会把字符串中里边包含“.”“h”“t”“m”“l”这些字符去掉了,当前函数是去除字符串两边的字符,是从字符串两边开始检测的,检测到就去除掉了,所以这时字符串处理后的结果就不是想要的结果了,这种情况可以通过substr()函数或者str_replace()函数处理,如://方式1(未知字符串情况下strlen计算字符串长度)
echo substr($str, 0, -strlen('.html'));
//方式2
echo str_replace('.html','',$str);
// 输出:https://yj521.com/zhl/1
方式一性能要好于方式二,耗时比较大约 3 : 5左右。所以substr性能高于str_replace。
-
fortran 去掉字符两边的空格
2019-04-11 14:44:35lnblnk 字符串最后一个非空格的字符的位置 index/scan 寻找指定字符的在字符串出现的位置 verify 第一个非指定字符在字符串出现的位置 adjustl 移动字符串左对齐,去掉打头的空格 adjustr 移动字符串...len 字符串的长度
trim 去掉字符串右边的空格
len_trim 不算字符串右边的空格的字符串的长度
lnblnk 字符串最后一个非空格的字符的位置
index/scan 寻找指定字符的在字符串出现的位置
verify 第一个非指定字符在字符串出现的位置
adjustl 移动字符串左对齐,去掉打头的空格 adjustr 移动字符串右对齐,去掉尾部的空格
lge/lle 字符串大小对比
repeat 计算字符在字符串中重复出现的次数参数Doc自己定义的是80,肯酌情修改(character*80,Doc可以使用 CHARACTER*(*) doc 替换,不用再定义其长度)
!======================================================================= ! Str_Doc ! 將字符串转化避免传入接口中乱码 ! 该Doc将通过导入导出作为接口的参数使用C++处理 !======================================================================= SUBROUTINE Str_Doc(Doc) character*80,Doc nlen = LEN_TRIM(Doc) Doc = Doc(1:nlen)//char(0) end subroutine Str_Doc
!======================================================================= ! Str_DocNoBlank ! 去掉数字字符串中的空格 ! 对于字符后面有空格的需要有自定义的结束标志,我定义为 @ ! 对于不需要结束标志的进行直接去除即可 ! 根据最后是否需要作为字符传入C++,接上 char(0) !======================================================================= SUBROUTINE Str_DocNoBlank(Doc) character Doc*80 Doc = adjustl(Doc) nlen = LEN_TRIM(Doc) Doc = trim(doc) !num = trim(adjustl(Doc)) nlen = nlen + 1 Doc = Doc(1:nlen) end subroutine Str_DocNoBlank
!======================================================================= ! Str_Str_Cat ! 字符串拼接,并且去掉不需要的空格, ! 比如:数字字符串中的空格需要全部去掉,字符串有的不需要去掉 ! 对于字符后面有空格的需要有自定义的结束标志,我定义为 @ ! 对于不需要结束标志的进行直接去除即可 ! 根据最后是否需要作为字符传入C++,接上 char(0) !======================================================================= SUBROUTINE Str_Cat(Doc,tempDoc) character Doc*80,tempDoc*80,cDoc*1 INTEGER mumber,endindex,endflag endindex = LEN_TRIM(Doc) cDoc = Doc(endindex:endindex) endflag = IACHAR(cDoc) if(endflag.eq.64)then nlen = LEN_TRIM(Doc) nlen = nlen - 1 else nlen = LEN_TRIM(Doc) nlen = nlen endif endindex = LEN_TRIM(tempDoc) cDoc = tempDoc(endindex:endindex) endflag = IACHAR(cDoc) if(endflag.eq.64)then nlen1 = LEN_TRIM(tempDoc) !nlen1 = nlen1 - 1 mumber = nlen + nlen1 else nlen1 = LEN_TRIM(tempDoc) nlen1 = nlen1 + 1 mumber = nlen + nlen1 endif if(mumber.lt.80) then Doc = Doc(1:nlen)//tempDoc(1:nlen1) !Doc = Doc(1:mumber)//char(0) endif end subroutine Str_Cat
-
shell去掉字符两端字符_shell脚本字符串截取的8种方法
2020-12-22 00:49:13假设有变量 var=http://www.aaa.com/123.htm.1. # 号截取,删除左边字符,保留右边字符。其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一...##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所...假设有变量 var=http://www.aaa.com/123.htm.
1. # 号截取,删除左边字符,保留右边字符。
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm
2. ## 号截取,删除左边字符,保留右边字符。
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/
结果是 123.htm
3. %号截取,删除右边字符,保留左边字符
%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:http://www.aaa.com
4. %% 号截取,删除右边字符,保留左边字符
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:
5. 从左边第几个字符开始,及字符的个数
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
6. 从左边第几个字符开始,一直到结束。
其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :www.aaa.com/123.htm
7. 从右边第几个字符开始,及字符的个数
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123
8. 从右边第几个字符开始,一直到结束。
表示从右边第七个字符开始,一直到结束。
结果是:123.htm
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
-
python 求最后一个单词的长度
2019-04-30 14:37:05给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。...用内置函数耍无赖,由于是从右往左遍历,去掉右边空格即可,切成列表求最后一个元素长度即可。 def lengthOfLastWord(s): retu...给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。说明:
一个单词是指由字母组成,但不包含任何空格的字符串。示例:
输入: "Hello World" 输出: 5
方法一:
用内置函数耍无赖,由于是从右往左遍历,去掉右边空格即可,切成列表求最后一个元素长度即可。def lengthOfLastWord(s): return len(s.rstrip().split(' ')[-1])
方法二:
判断最后一位是否为空格,保持切割,完成后从右往左找到第一个空格的指数即可。def lengthOfLastWord(s): while s.endswith(' '): s = s[:-1] return len(s) - s.rfind(' ') -1
方法三:
从右往左遍历,空格则跳过,找到第一个非空格元素后开始计数,直至下一个空格或者首位元素出现。def lengthOfLastWord(s): j = 0 if s: i = len(s) -1 while i >= 0: if not s[i] == ' ': j += 1 elif j: return j i -= 1 return j
以上为抛砖引玉,若有精妙之法,还望不吝赐教。
-
leetcode 58. 最后一个单词的长度(python)
2019-06-15 23:57:39给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 示例: 输入: “Hello World” 输出:... -
[Ruby] 关于字符串中特殊字符处理\n\t\r 的方法
2016-06-30 14:17:46去掉字符串尾部的\n或\r(每次只能处理最后一个字符) 2.chop 和chop! 去掉字符串最后面的一个字符 3.strip和strip! 去掉一串字符串前面和后面的空字符或者\t \n \r 4.rstrip和rstrip! 和strip相似 ,只... -
字符串常用操作
2019-03-16 20:56:571. 去掉空格 str.strip() # 去掉两边的空格和换行符 str.strip('a') # 去掉两边指定的字符 str.lstrip() #去掉左边的空格 ...用切片的方式来截取字符串, s[2:-1] # 第2个到最后一个为止 查找是否存在某个字符, s... -
2020寒假【gmoj1923】【scode密码编码】【DFS】【字符串】
2020-03-17 21:26:49每次操作,约翰把字符串S去掉从第一个开始连续的若干个字符或者从最后一个字符开始连续若干个字符(至少去掉一个字符,也不能全部去掉),然后把剩余的字符串添加到原来S串的左边或者右边。例如,对于字符串ABC,一... -
shell截取字符串的一些简单方法
2017-07-08 01:14:001、${var##*/}该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容。使用例子及结果如下: 从运行结果可以看到,使用该命令,可以提取出... -
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串
2017-05-06 20:26:52说明:设置显示行的宽度,默认是80个字符 用法:set linesize 120 10. 显示页数 (pagesize) 说明:设置每页显示的行数,默认是14页 用法:set pagesize 20 三、 用户管理 1. 创建用户 说明:Oracle中需要创建用户... -
【纪中2020.3.8日】密码编码【DFS STL】
2020-04-10 17:08:39每次操作,约翰把字符串S去掉从第一个开始连续的若干个字符或者从最后一个字符开始连续若干个字符(至少去掉一个字符,也不能全部去掉),然后把剩余的字符串添加到原来S串的左边或者右边。例如,对于字符串ABC,一... -
SAP SHIFT语法注意
2019-10-28 19:18:21SHIFT LEFT DELETING ...假设左边的第一个字符或右边的最后一个字符出现在 中,该语句将字段 向左或向右移动。字段右边或左边用空格填充。 可为变量 注意必须为string类型 例如: 去掉字符串最右边的/ 效果: ... -
【2014.10.18普及组】密码编码(scode.pas/cpp/c) //2018.1.27
2018-01-29 07:59:24每次操作,约翰把字符串S去掉从第一个开始连续的若干个字符或者从最后一个字符开始连续若干个字符(至少去掉一个字符,也不能全部去掉),然后把剩余的字符串添加到原来S串的左边或者右边。例如,对于字符串ABC,一... -
mysql使用笔记(四)
2015-11-23 00:03:00char(M)的数据列中,每个值都占用M个字节,如果某个长度小于M,mysql就会在它的右边用空格字符补足,在检索操作的时候最后一个非空格字符右边的所有字符都会被去掉,因此需要注意,去掉右边的空格有可能不只去掉补足... -
2020.03.08模拟赛14(第四题)
2020-03-11 22:47:34每次操作,约翰把字符串S去掉从第一个开始连续的若干个字符或者从最后一个字符开始连续若干个字符(至少去掉一个字符,也不能全部去掉),然后把剩余的字符串添加到原来S串的左边或者右边。例如,对于字... -
shell中的${}
2017-03-24 10:19:27键盘中$的左边是#,右边是% 话不多说看代码运行效果: (注意匹配符*的位置) ...#去掉s中最后一个和r匹配的字符以及其左边的所有字符 echo ${s##*r} #去掉s中第一个和r匹配的字符以及其右边的所有字符 echo -
数据库:char , varchar 和varchar2的使用区别
2020-08-12 10:25:011.定长和不定长 ①char(M) 类型,每个值都占用 M 个字符,如果某个值小于M,mysql就...而 varchar ,最后一个字符还是记录的字符长度,计算机处理的时候,还要计算最后这个字符,所以有额外的计算 相比较之下,char的 -
shell中文件后缀,目录等提取方法
2019-04-04 15:32:02该命令的作用是去掉变量var从左边算起的最后一个’/‘字符及其左边的内容,返回从左边算起的最后一个’/’(不含该字符)的右边的内容。使用例子及结果如下: ${var##*.} 该命令的作用是去掉变量var从左边算起的... -
php 常用的系统函数
2020-12-19 04:09:11strrev:字符串反转(只能反转英文:英文存储只有一个字节),按照字节进行反转 strpos:从字符串中找对应字符出现的位置(数字下标),从最左边开始找 strrpos:与strpos一样,只是从字符串的右边开始找 trim:去掉... -
你必须知道的495个C语言问题
2015-05-08 11:09:25例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我... -
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:09例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 11 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:18例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 11 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针... -
你必须知道的495个C语言问题(中文高清版)
2013-03-20 13:28:28例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我... -
[你必须知道的495个C语言问题]人民邮电出版社
2012-08-18 19:02:28例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我... -
delphi通用函数单元一
2011-08-19 20:38:47{在一个字符串中查找某个字符串的位置} function StrNum(ShortStr:string;LongString:string):Integer; {测试通过} {* 返回某个字符串中某个字符串中出现的次数} function FindStr(ShortStr:String;LongStrIng:... -
线段树最大连续区间 -- Tunnel Warfare HDU - 1540
2020-03-21 19:27:16=5e4),m行中每行一个字符c表示操作类型,一个整型数x表示第x个点 D x 表示去掉第x点,Q x表示需输出含 x 的最大连续区间的长度,R x表示还原最后去掉的点 思路: 第一种思路:利用线段树求解, 线段树维护一个最长...