0

我有一个字符串,想在某个“点”+单词组合之后删除所有内容。例如:

This.Is.A.Test

=> 会变成

This.Is.A
4

5 回答 5

3

您是要删除特定点+词之后的所有内容,还是只删除最后一个点+词?如果您正在寻找一个特定的词,试试这个:

$str = "This.Is.A.Test";
$find = ".A";
$index = strpos($str, $find);
if ($index !== false)
    $str = substr($str, 0, $index + strlen($find));
echo $str; // "This.Is.A"

回应@SuperSkunk:

如果你想匹配整个单词,你可以这样做:

$find = ".A.";

$str = "This.Is.A.Test";
$index = strpos($str, $find);
if ($index !== false)
    $str = substr($str, 0, $index + strlen($find) - 1);
echo $str; // "This.Is.A"

$str = "This.Is.AB.Test";
$index = strpos($str, $find);
if ($index !== false)
    $str = substr($str, 0, $index + strlen($find) - 1);
echo $str; // "This.Is.AB.Test" (did not match)
于 2012-05-21T13:50:09.940 回答
1

$str = "This.Is.A.Test"; $str = substr($str, 0, strrpos($str, "."));

于 2012-05-21T13:52:35.590 回答
0

我会做一些非常简单的事情,比如:

<?php

$string = 'This.Is.A.Test';

$parts = explode('.', $string);
array_pop($parts); // remove last part
$string = implode('.', $parts);

echo $string;

?>
于 2012-05-21T13:50:01.950 回答
0

$pos = strpos($haystack, ".A" );

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

......像这样的东西。

于 2012-05-21T13:53:29.807 回答
0
$result = explode('.', $str, 4);
array_pop($result);
implode('.', $result);
于 2012-05-21T13:49:16.447 回答