有没有办法限制ltrim在PHP中删除的内容。
我得到了以下结果:
$str = "axxMyString";
$newStr = ltrim($str, "ax");
// result MyString and it should have been xMyString
答案 0 :(得分:4)
如果您知道应该删除前两个字符,请使用:
$str = substr($str, 2);
ltrim($str, $chars)
从字符串的 l eft侧删除$chars
中的每个出现。
如果你只想在前两个字符等于ax
时删除它们,你可以使用:
if (substr($str, 0, 2) == 'ax') $str = substr($str, 2);
答案 1 :(得分:1)
ltrim()手册:
剥离空白(或其他字符) 从字符串的开头。
因此...
$newStr = ltrim($str, "ax");
这将删除字符串'a'
开头的每个字符'x'
和$str
。
使用substr()获取所需的部分字符串。
答案 2 :(得分:0)
第二个参数是每个要修剪的角色。因为您定义了a
和x
,所以首先从字符串中删除了字母。
只是做:
$newStr = ltrim($str, "a");
你应该没事。
答案 3 :(得分:0)
您也可以使用正则表达式:
$string = preg_replace('#^ax#', '', $string);
答案 4 :(得分:0)
我认为混乱已经出现,因为ltrim会收到要删除的字符列表,而不是字符串。您的代码会删除所有a
或 x
而不是字符串ax
。因此axxxaxxaMyString
变为MyString
而axxaiaxxaMyString
变为iaxxaMyString
。
如果您知道需要移除多少个字符,则可以使用substr()
以获得更复杂的模式,您可以通过preg_replace()
使用正则表达式。