在PHP中删除字符串左右两侧的字符

在PHP中删除字符串左右两侧的字符,php,Php,这是一个字符串示例:abcde123ijklmn0pq 在这个字符串中,我只需要打印123序列中的数字,并删除左右两侧的字母以及要删除的hashtag 哈希标记始终包含在字符串中 标签始终位于需要打印的字符的右侧 标签始终位于需要删除的字符的左侧 因此,hashtag可以用作从右侧删除字母的指南 开头的字符数始终等于要删除的5个常量

这是一个字符串示例:abcde123ijklmn0pq

在这个字符串中,我只需要打印123序列中的数字,并删除左右两侧的字母以及要删除的hashtag

哈希标记始终包含在字符串中

标签始终位于需要打印的字符的右侧

标签始终位于需要删除的字符的左侧

因此,hashtag可以用作从右侧删除字母的指南

开头的字符数始终等于要删除的5个常量

<中的字符数总是不同的变量要打印; 右边的字符数始终是要删除的不同变量

下面是另一个字符串示例,与第一个类似:@@$重要=-=无论什么

需要打印的字符是“重要”一词


与第一个示例一样,需要打印标签左侧的内容,但重要的是只打印重要的单词,而不打印特殊字符!!@$

我试试看。看起来很简单

$myString = '!!@@$IMPORTANT#=-=whatever';

$result = substr($myString, 5, -1);

$pos = strpos($result, '#');

$result = substr($result, 0, $pos);

echo $result;
function choppy($choppy) {

    $nstr = substr($choppy, 5,strlen($choppy)); //chop first 5
    $pos = strpos($nstr, "#"); //Find the position of the hash tag

    return substr($nstr, 0, $pos); //we only need the stuff before it...
}

echo choppy('!!@@$IMPORTANT#=-=whatever');
echo "\n";
echo choppy('abcde123#ijklmn0pq');
结果

C:\Users\developer\Desktop>php test.php
IMPORTANT
123

其他答案很好,但如果你的家庭作业需要一行字:

$str = '!!@@$IMPORTANT#=-=whatever';

echo substr($str, 5, strpos($str, '#')-5); //IMPORTANT
您可以使用带有preg_replace的正则表达式

假设需要处理的字符串存储在$string中:

第一种模式说明:

^.{5}:匹配$string开头后的任何5个字符 .*:匹配第一个捕获组第一次出现之前1之后的任意N个字符 .*$:匹配$string结尾前2后面的任意N个字符 第二种模式说明:

$1:用第一个模式中匹配的第一个捕获组替换$string
请分享你已经尝试过的。那么一个正则表达式。。。比如/^.{5,5}.*.[].$/这是未经测试的,但我会想象它会是类似的东西……您好。没有必要将问题标记为已解决-如果您想具体说明问题,可以在答案下进行评论。这是可选的,但鼓励向上投票其他看起来有用的答案-这是感谢其他用户努力的一个好方法。仅供参考:就您想要的内容而言,您的问题肯定是准确的,但这也可能是投票被否决的原因——在读者看来,这是一个免费工作的需求规范。当你下一次问问题时,我希望你能展示一下你做了什么工作,特别是你在哪里遇到了困难。哦,我明白了。。。谢谢你们的投入,下一次会做得更好,正如你们所建议的,一旦我得到更多的投票点,我也会投票给其他的答案
preg_replace('^.{5}(.*)#.*$', '$1', $string);