|
2#
楼主 |
发表于 2024-2-24 14:14:32
|
只看该作者
本帖最后由 likeyouli 于 2024-2-24 19:00 编辑
echo %n:~0,5% --返回从头开始的5个字符;.
echo %n:~5% --如果没有0,这样写会返回从左数第6个到末尾的全部字符;.
试着总结以下规则:m、t代表数字,n为变量,代表字符串:①一个数字的情况,分两种情况:
一是如果为%n:~m%形式:如果m为正数,返回从左数m+1个到最后的字符串;如果m为负数,返回从右数|m|到最后的字符串;如果m为0,则返回整个字符串;
二是如果为%n:~,m%形式:如果m为0或正数,返回从左数第1个开始,取m个字符串,与上边~后没有逗号时正好相反;如果m为负数,从左数第一个开始,到右数第|m|+1个结束,与上边~后没有,时相反。
②如果为%n:~t,m%形式,即有二个数字,因为m不能等于0(为0会报错),分六种情况(我先全部罗列出,再总结)
一是t为正数,m为正数:从左数第t+1个开始,取m个字符串;
二是t为正数,m为负数:从左数第t+1个开始,到右数|m|+1个结束;
三是t为0,m为正数:从左数第1个开始,取m个字符串;
四是t为0,m为负数:从左数第1个开始,到右数|m|+1个结束;
五是t为负数,m为正数:从右数第t个开始,取m个字符串;
六是t为负数,m为负数:从右数第t个开始,到右数|m|+1个结束,所以必须|t|≥|m|+1,否则报错。前四种可以合并为二种:
一是t为0或正数,m为正数:从左数t+1个开始,取m个字符串;
二是t为0或正数,m为负数:从左数t+1个开始,到右数|m|+1个结束;
三是t为负数,m为正数:从右数第t个开始,取m个字符串;
四是t为负数,m为负数:从右数第t个开始,到右数|m|+1个结束,所以必须|t|≥|m|+1,否则报错。.
我倒觉着可以根据逗号简单记忆:~后有逗号的,即~,结束点根据逗号(,)后的数决定;
~后没有逗号的,结束点就是字符串结尾。 .
有逗号与没有逗号,取值正好相反。
.
.
|
|