如何删除特定字符后的字符串中的最后一个字

问题描述:

我想知道如何从特定字符后的字符串中删除最后一个字。如何删除特定字符后的字符串中的最后一个字

这些都是几个字符串

lv_datatable_5_english 
lv_datatable_5_arabic 

How can i remove "english" and "arabic" from these string to get this 

lv_datatable_5_ 

这是我迄今为止

echo implode(" ", array_slice(str_word_count($id, 1), 0, -1)); 
echo substr($string, 0, strpos($string, "_")); 

尝试,但这种删除整个单词从_

开始,我得到这个输出

“lv datatable”

+0

将字符串总是有'_'的一样多吗? –

+0

是的,只有最后一个字会改变@ LawrenceCherone –

实现此目的的方法有很多。一个选择是使用preg_replace从一组从一个字符串的末尾删除所有字符:

echo preg_replace('/[^_]+$/', '', 'lv_datatable_5_english'); 

// lv_datatable_5_ 

正则表达式中的所有字符匹配除了_,和锚定至串的一端与$

如果你发现它更清晰,你可以明确地返回对象的字符串截至及包括最后一个字符_

$string = 'lv_datatable_5_english'; 
echo substr($string, 0, strrpos($string, '_') + 1);