我需要找到PHP中的方法,以消除使用正则表达式的2串的最后部分删除字符串的最后一个字符。这样,一旦他们被剥夺了额外的人物,我可以找到他们之间的匹配。这里是字符串数据我处理类型的例子:使用正则表达式
categories_widget-__i__
categories_widget-10
所以我想删除:
-__i__ from the first string
-10 from the second string
在此先感谢。
我需要找到PHP中的方法,以消除使用正则表达式的2串的最后部分删除字符串的最后一个字符。这样,一旦他们被剥夺了额外的人物,我可以找到他们之间的匹配。这里是字符串数据我处理类型的例子:使用正则表达式
categories_widget-__i__
categories_widget-10
所以我想删除:
-__i__ from the first string
-10 from the second string
在此先感谢。
你可以试试下面的代码从-
删除所有字符高达最后。
<?php
$text = <<<EOD
categories_widget-__i__
categories_widget-10
EOD;
echo preg_replace("~-.*$~m","",$text);
?>
输出:
categories_widget
categories_widget
-
字面-
符号相匹配。并且.*
与符号-
之后的任何字符匹配,直到行的末尾。 $
表示一条线的结束。通过用空字符串替换所有匹配的字符会给你所需的输出。
$str1 = "categories_widget-__i__";
$str2 = "categories_widget-10";
$arr1 = explode("-", $str1);
$arr2 = explode("-", $str2);
echo $arr1[0];
echo $arr2[0];
如何识别字符串的最后部分?用' - '?你真的不需要regex那 – Sugar 2014-09-01 07:57:36
必须正则表达式吗? – kefy 2014-09-01 07:57:46
以下所有答案都可以正常工作。 – George 2014-09-01 18:52:17